解决ASP.NET MVC 检测到有潜在危险的 Request.Form 值(转)
[url]http://www.cnblogs.com/nozer/archive/2011/12/25/2301394.html[/url]
提交使用html编辑器编辑后的数据,由于Request时出现有HTML或Javascript等字符串时,系统会认为是危险性值。立马报错。
解决方法如下:
1.修改Web.config Pages节点,更改为以下配置
[color=red]添加 <httpRuntime requestValidationMode="2.0"/>元素。
添加 <pages validateRequest="false" > 元素。[/color]
2.在Action 添加[ValidateInput(false)]属性
[color=red] [HttpPost]
[ValidateInput(false)] [/color]
[url]http://www.cnblogs.com/nozer/archive/2011/12/25/2301394.html[/url]
提交使用html编辑器编辑后的数据,由于Request时出现有HTML或Javascript等字符串时,系统会认为是危险性值。立马报错。
解决方法如下:
1.修改Web.config Pages节点,更改为以下配置
[color=red]添加 <httpRuntime requestValidationMode="2.0"/>元素。
添加 <pages validateRequest="false" > 元素。[/color]
<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"/>
2.在Action 添加[ValidateInput(false)]属性
[color=red] [HttpPost]
[ValidateInput(false)] [/color]
// 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();
}
}