C# 在asp mvc中从客户端检测到潜在危险的请求。表单值

C# 在asp mvc中从客户端检测到潜在危险的请求。表单值,c#,asp.net-mvc,asp.net-mvc-5,rich-text-editor,C#,Asp.net Mvc,Asp.net Mvc 5,Rich Text Editor,我正在使用富编辑器 它告诉我这个错误 返回Nullt.FullText=HttpContext.Request[“Editor1”] 视图: <div class="name"> <label id="lbl-full-text">FullText : </label> @* @Html.TextAreaFor(model => model.FullText)*@ <div name="FullText" style="mar

我正在使用富编辑器

它告诉我这个错误

返回Null
t.FullText=HttpContext.Request[“Editor1”]

视图:

<div class="name">
    <label id="lbl-full-text">FullText : </label>
  @* @Html.TextAreaFor(model => model.FullText)*@
    <div name="FullText" style="margin-right: 109px;    margin-top: -34px;">
        @Html.Raw(ViewBag.Editor)
    </div>
</div>
元数据:

[AllowHtml]
public string FullText { get; set; }

我如何解决这个问题

有几种方法可以解决这个问题。在我看来,并不是所有的方法都是最好的

这可能是最糟糕的

鸟枪进近

<httpRuntime requestValidationMode="2.0"/>

我已经有一段时间没有在我创建的任何网站上做这些了,但我认为它们仍然有效。

使用
System.Web.HttpContext.Current.Request.Unvalidated.Form[“Editor1”]
禁用整个页面或所有页面的输入验证是个坏主意

我最终通过在AJAX发布之前截取jQuery中编辑的值并转义该值来完成这项工作,如下所示:

$("#Textareaeditor").val(escape(-get value from editor-);
然后,服务器端您只需执行以下操作:

model.property = URI.unEscapeDataString(model.property).

这对md有效,当时没有其他操作,我不想设置
requestValidationMode=2.0

可能重复的No。我做这一步,但它不工作
<configuration>
...
<location path="MyFolder/.aspx">
<system.web>
<pages validateRequest="false" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
</location>
...
</configuration>
[ValidateInput(false)]
$("#Textareaeditor").val(escape(-get value from editor-);
model.property = URI.unEscapeDataString(model.property).