如何在MVC 3中的Request.Form集合中访问未经validation的项目
我在.NET 4.0中使用ASP.NET MVC 3。 我有一个模型,其中一个属性要求允许HTML内容。 我在我的模型属性上放置了AllowHtml
属性,该属性允许在该属性上使用HTML。 这本身就有效。
我也在我网站的其他部分使用Uploadify flash上传程序。 由于flash和会话的问题 ,我使用的代码类似于swfupload示例中的代码,以允许我的文件上传访问会话数据。 基本上我直接在Application_BeginRequest
处理程序中访问Request.Form
集合。
我遇到的问题是,当提供HTML的表单被提出时,当Application_BeginRequest
处理程序中的代码访问Request.Forms[key]
集合时,我得到一个HttpRequestValidationException
。
就像我在开始时说的那样,我尝试过AllowHtml
属性。 我还尝试使用ValidateInput(false)
属性在动作和控制器级别禁用validation,但我相信我在请求生命周期中对于那些要应用的人来说太早了。 无论如何都要访问包含“潜在危险”数据的Request.Form
集合而不禁用整个站点的请求validation?
你问这样的事情: 在ASP MVC 3 RC和.NET 4中使用Request.Unvalidated()validation请求 ?
Request.Unvalidated().Params[""]
对于记录,另一种方法是创建一个未经validation的对象:
var unvalidatedRequest = System.Web.Helpers.Validation.Unvalidated(Request);
然后,您只需访问Unvalidated()
对象,而不是反复Unvalidated()
。
Validation.Unvalidated
方法具有各种重载。