我在我网站的管理面板上使用TinyMCE 编辑器,所以我用[AllowHtml]装饰模型属性(tinymce 的目标),并在视图中使用Html.BeginForm() 。当我提交带有 HTML 字段的表单时,一切正常。
但是如果我以同样的方式使用重载Html.BeginForm("action","controller")会出现问题,它会跳过[AllowHtml]并抛出众所周知的 Request.form 异常。我被迫在 Action-Method 上使用[ValidateInput(false)]以使其毫无例外地工作。你知道为什么吗?提前感谢您的澄清,
这是场景/项目:Asp.net Mvc 4:
型号/Ricetta.cs
..
[Required(ErrorMessage = "Corpo Articolo vuoto")]
[AllowHtml]
public string corpoTesto { get; set; }
..
控制器 / RicetteController.cs
..
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(RicettaViewModel modelloRicetta)
{
if (ModelState.IsValid) {
..
View Ricette/Create从 RicetteController 中的另一个 Action 方法调用为 View("Create", modelObject)
@model WebAPP_MVC4.Areas.Admin.Models.RicettaViewModel
...
@using (Html.BeginForm("Create","Ricette",FormMethod.Post)){
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
....
<fieldset>
<legend>Corpo Ricetta ~</legend>
<div class="editor-label">
@Html.LabelFor(p=>p.ricetta.corpoTesto)
</div>
<div class="editor-field">
@Html.TextAreaFor(p=>p.ricetta.corpoTesto, new { @cols = 60, @rows = 20})
@Html.ValidationMessageFor(p=>p.ricetta.corpoTesto)
</div>
</fieldset>
..