如何在MVC 3中的Request.Form集合中访问未经验证的项目

时间:2012-09-17 21:18:22

标签: c# asp.net-mvc asp.net-mvc-3 httpwebrequest

我在.NET 4.0中使用ASP.NET MVC 3。我有一个模型,其中一个属性要求允许HTML内容。我在我的模型属性上放置了AllowHtml属性,该属性允许在该属性上使用HTML。这本身就有效。

我也在我网站的其他部分使用Uploadify flash上​​传程序。由于problems带有flash和会话,我使用的代码类似于swfupload example中的代码,以允许我的文件上传访问会话数据。基本上我直接在Request.Form处理程序中访问Application_BeginRequest集合。

我遇到的问题是,当提供HTML的表单被提出时,HttpRequestValidationException处理程序中的代码访问Application_BeginRequest集合时会得到Request.Forms[key]

就像我在开头说的那样,我尝试了AllowHtml属性。我还尝试使用ValidateInput(false)属性在操作和控制器级别禁用验证,但我相信我在申请生命周期中要求申请的时间太早。无论如何都要访问包含“潜在危险”数据的Request.Form集合而不禁用整个网站的请求验证?

2 个答案:

答案 0 :(得分:6)

你问的是这样的事情:Validate request with Request.Unvalidated() in ASP MVC 3 RC and .NET 4

Request.Unvalidated().Params[""]

答案 1 :(得分:0)

对于记录,另一种方法是创建一个未经验证的对象:

var unvalidatedRequest = System.Web.Helpers.Validation.Unvalidated(Request);

然后,您只需访问unvalidatedRequest对象,而不是反复点击Unvalidated()

Validation.Unvalidated方法有各种重载。