在ASP.net MVC 2中,如果动作的参数是模型,那么如何禁用验证以解除例如“潜在的从客户端检测到危险的Request.Form值(Post.Title =“<b> Title </b >”)。 “?如何在ASP.net MVC2中禁用验证,如果动作的参数是模型
例如,在MvcMusicStore(这是ASP.net MVC2的官方示范)中,以下代码负责创建新的专辑。而标题是它的一个属性。
[HttpPost]
public ActionResult Create(Album album)
{
...
}
但是如果我添加在标题文本框中输入一些敏感的代码,如“<b>标题</B >”,上述异常将被抛出。我试图添加[ValidateInput(false)]到这个动作,并且ValidateRequest =“false”到视图代码,他们都没有工作。
有没有人可以提供帮助?
更新: 由于我使用Visual Studio 2010和ASP.net 4.0,所有这些解决方案将无法工作,除非我补充一下:
<httpRuntime requestValidationMode="2.0" />
到web.config中。请参阅:https://stackoverflow.com/questions/2019843/a-potentially-dangerous-request-form-value-in-mvc-2-asp-net-4-0和http://www.asp.net/learn/whitepapers/aspnet4/breaking-changes#_TOC4。
然后出现一个新问题。如果我们必须回到2.0模式的请求验证,为什么微软添加这个新功能到ASP.net 4.0?有什么办法可以解决这个异常而无需回到2.0模式?
有什么办法可以处理这个异常而无需回到2.0模式? – user90547 2010-06-28 14:02:21
@ user90547不,这是唯一的方法。 – jfar 2010-06-28 16:45:12