今天1月底, ASP.NET MVC 的RC1 终于出了, 好在兼容性上没有什么大问题, MVC beta4 的代码编译运行都不会报错。但是在页面输入校验上做了增强。
众所周知, 传统ASP.NET 缺省是对页面上的输入提交内容做校验的, 若提交的内容里面带有潜在危险,如: HTML 标签, javascript 代码, 就会报 A potentially dangerous Request.Form value was detected from the client
要想关闭潜在性危险的校验有两种方法:
1) 在aspx 页面上加: <%@ Page validateRequest="false" %>
2) 在web.config 的<system.web> 标签内加: <pages validateRequest="false" />
MVC RC1 对于输入请求也加上了安全校验, 但是MVC的处理方式和通常asp.net 的处理方式不同, 因此若要禁用该功能, 不能用上述传统asp.net 所用的两种方法。 而是需要在Controller 的Action 上加上ValidateInput 属性, 如下:
[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SubmitDocument([Bind(Prefix = "")]EPortal_Document mdl)
{
....
}