我希望在 ASP.NET MVC 2.0 RTM 中的特定视图上禁用 RequestValidation 。所以我添加了一些必要的内容来查看Page指令部分,如下所示:
<%@ Page ValidateRequest="false" Language="C#" MasterPageFile="Path" Inherits="System.Web.Mvc.ViewPage<Path>" %>
但 RequestValidation 未停用!我还将 RequestValidation属性添加到控制器中的相关操作,如下所示:
[System.Web.Mvc.ValidateInput(false)]
public System.Web.Mvc.ActionResult Create(Model instance)
{
//Do here something
}
:')但 RequestValidation 也没有禁用!
在上一次尝试中,我在 Web.config 文件中将 RequestValidation 设置为false,如下所示:
<pages validateRequest="false" />
RequestValidation 仍未关闭!
为什么呢?提前谢谢;)
答案 0 :(得分:13)
如果您使用的是asp.net 4.0,则验证请求功能行为已从2.0版更改。查看breaking changes document here。如果是这种情况,您可以通过将请求验证行为设置回web.config中的2.0来解决问题,如下所示:
<httpRuntime requestValidationMode="2.0" />
答案 1 :(得分:0)
只需添加
[ValidateInput(假)]
在您的控制器功能中 但不要忘记编码值以防止有害代码
[ValidateInput(false)]
public string Browse(string test)
{
string message = HttpUtility.HtmlEncode("Value = " + test);
return message;
}