代码改变世界

解决ASP.NET MVC 检测到有潜在危险的 Request.Form 值

2010-08-24 10:50  Creative dream  阅读(2469)  评论(2)    收藏  举报

在提交使用html编辑器编辑后的数据,由于Request时出现有HTML或Javascript等字符串时,系统会认为是危险性值。立马报错。

ASP.NET MVC默认会给我们报以下错误,如下图显示:

  • 开发工具:VS 2010 EN
  • 开发语言:Visual C#
  • ASP.NET MVC 2.0

解决方法如下:

1.修改Web.config Pages节点,更改为以下配置

 

<pages validateRequest="false" >
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
<globalization requestEncoding="gb2312" responseEncoding="gb2312" />
<httpRuntime requestValidationMode="2.0"/>

 

 

添加  httpRuntime元素。

2.在Action 添加[ValidateInput(false)]属性

 

//
// POST: /Blog/Create

[HttpPost]
[ValidateInput(
false)]
public ActionResult Create(Blog blog)
{
try
{
// TODO: Add insert logic here
if (ModelState.IsValid)
{
blogContainer.AddToBlogs(blog);
blogContainer.SaveChanges();
}

return RedirectToAction("Index");
}
catch
{
return View();
}
}