AllowHtml-Attribut nicht funktioniert

Ich habe ein Modell mit dieser Eigenschaft:

     [AllowHtml]
     [DisplayName("Widget for Table")]
     [StringLength(1000, ErrorMessage = "Maximum chars 1000")]
     [DataType(DataType.Html)]
     public object TableWidget { get; set; }

Und hier ist die create-Methoden in controller:

  //
  //GET: /Admin/Table/Create

  public ActionResult Create(int id)
  {
     Season season = _seasonRepository.GetSeason(id);

     var table = new Table
                     {
                        SeasonId = season.SeasonId
                     };
     return View(table);
  }

  //
  //POST: /Admin/Table/Create

  [HttpPost]
  public ActionResult Create(Table a)
  {
     if (ModelState.IsValid)
     {
        _tableRepository.Add(a);
        _tableRepository.Save();
        return RedirectToAction("Details", "Season", new { id = a.SeasonId });
     }
     return View();
  }

Und Letzte hier ist meine Ansicht:

@model Stridh.Data.Models.Table
@using (Html.BeginForm())
{
   @Html.ValidationSummary(true)
   <fieldset>
      <legend>Fields</legend>
      <div class="editor-label">
         @Html.LabelFor(model => model.Name)
      </div>
      <div class="editor-field">
         @Html.EditorFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name)
      </div>
      <div class="editor-label">
         @Html.LabelFor(model => model.TableURL)
      </div>
      <div class="editor-field">
         @Html.EditorFor(model => model.TableURL) @Html.ValidationMessageFor(model => model.TableURL)
      </div>
      <div class="editor-label">
         @Html.LabelFor(model => model.SortOrder)
      </div>
      <div class="editor-field">
         @Html.EditorFor(model => model.SortOrder) @Html.ValidationMessageFor(model => model.SortOrder)
      </div>
      <div class="editor-label">
         @Html.LabelFor(model => model.TableWidget)
      </div>
      <div class="editor-field">
         @Html.EditorFor(model => model.TableWidget) @Html.ValidationMessageFor(model => model.TableWidget)
      </div>
      <div class="editor-label invisible">
         @Html.LabelFor(model => model.SeasonId)
      </div>
      <div class="editor-field invisible">
         @Html.EditorFor(model => model.SeasonId)
      </div>
      <p>
         <input type="submit" value="Create" />
      </p>
   </fieldset>
} 

Wenn ich einen "normalen" E-Mail ohne html alles gespeichert ist OK, aber beim speichern sagt Eine potenziell gefährliche Anfrage.Form...

Andere seltsame Sache ist, dass ich diesen [AllowHtml] zum arbeiten in einen anderen Modell-Klasse. Ich kann nicht finden, warum dies so ist, was mich troubble. Brauchen Ihre Hilfe. 🙂

Vielleicht kann das helfen: stackoverflow.com/questions/4821274/... Ihr web.config müssen <httpRuntime requestValidationMode="2.0" />
dieser Vorschlag ist nicht notwendig, zu korrigieren. Sie sollten nicht requestValidationMode.
Bitte fügen Sie auch einen stack-trace der Ausnahme, dass Sie sehen. Das wird helfen, das problem zu diagnostizieren.
Es war ein Alter Asp.Net MVC bug in früheren Versionen. Denn ich habe diese Probleme in neueren Installationen von MVC. Aber trotzdem danke für die Antworten
Ich habe gekämpft, mit diesem Problem und in meinem Fall das Antwort geholfen 🙂

InformationsquelleAutor superfrallan | 2011-02-01

Schreibe einen Kommentar