小编Enr*_*tta的帖子

Html.BeginForm()工作正常,Html.BeginForm("action","controller")忽略[AllowHtmlAttribute]

我在我的网站的管理面板上使用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; }
..
Run Code Online (Sandbox Code Playgroud)

Controller/RicetteController.cs

..
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create(RicettaViewModel modelloRicetta)
    {
        if (ModelState.IsValid) {
..
Run Code Online (Sandbox Code Playgroud)

查看Ricette/CreateRicetteController中的另一个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}) …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc tinymce asp.net-mvc-4

5
推荐指数
1
解决办法
4万
查看次数

标签 统计

asp.net-mvc ×1

asp.net-mvc-4 ×1

tinymce ×1