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 🙂
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Weg, die Sie verwenden
AllowHtml
funktionieren sollte. Stellen Sie sicher, dass Sie nicht den Zugriff auf dieHttpRequest.Form
Sammlung irgendwo anders in deinem code (regler, filter, etc) dies auslösen wird ASP.NET Anforderung Validierung und die Fehlermeldung, die Sie sehen. Wenn Sie wollen, Zugriff auf diese variable-dann sollten Sie zugreifen über den folgenden code.InformationsquelleAutor marcind
Bekomme ich das gleiche problem und ich löse es mit Hilfe von dieser Beitrag.
Wenn Sie auf .net 4.0 stellen Sie sicher, fügen Sie diese in Ihrem web.config
Innerhalb der
<system.web>
tagsAber Bedenken Sie die Folgen, die es durch die app
Konsequenzen: stackoverflow.com/questions/16590032/...
InformationsquelleAutor Sword-Breaker
Ich hatte das gleiche problem. Meine model-Klasse mit der Bezeichnung "GeneralContent" und hat die Eigenschaft "Content". In meiner action-Methode, die ich verwendete Attribut wie diese:
public ActionResult Update(GeneralContent Inhalt)
als ich umbenannt Inhalte argument cnt, alles funktioniert gut. Ich denke, MVC ist verwirrt, wenn einige attribude der model-Klasse hat den gleichen Namen wie das argument im action-Methode.
InformationsquelleAutor TheArchon
Hatte ich auch dieses Problem. Ich konnte nicht ein Modell-Eigentum markiert mit
[AllowHtml]
tatsächlich erlauben HTML und stattdessen begegnet den gleichen Fehler, den Sie beschreiben. Meine Lösung war, markieren Sie die Controller-Aktion, akzeptiert das gebuchte Modell mit dem[ValidateInput(false)]
Attribut.InformationsquelleAutor Adam Price