Tuesday, February 17, 2009
« SWFDotnet Library | Main | Use css based on html input type »

今天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)
        {
         ....

        }