【发布时间】:2010-06-28 11:25:15
【问题描述】:
在 ASP.net MVC 2 中,如果操作的参数是模型,如何禁用验证以消除异常,例如“从客户端检测到潜在危险的 Request.Form 值(Post.Title="标题”)。 '?
例如,在 MvcMusicStore(这是 ASP.net MVC2 的官方演示)中,以下代码负责创建新专辑。而 Title 是它的一个属性。
[HttpPost]
public ActionResult Create(Album album)
{
...
}
但是如果我在Title文本框中添加一些敏感代码,比如“Title”,就会抛出上述异常。我尝试将 [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 模式的情况下解决此异常?
【问题讨论】:
标签: asp.net-mvc model