我正在尝试弄清楚如何忽略在模型绑定(bind)期间抛出的 HttpRequestValidationException。
事情是这样的,我知道如何处理发布的 HTML 并将其绑定(bind)到需要 HTML 的属性(使用 AllowHtml 属性)但是当用户在不允许 HTML 的字段中发布 HTML 时,我想自动在绑定(bind)到模型期间对该值进行编码。
我创建了一个自定义模型联编程序来捕获抛出的 HttpRequestValidationException,但每当我尝试从 Request.Form 获取值时,都会抛出相同的异常。
在 MVC3 中是否有自动执行此操作的方法?
我是否需要将 AllowHtml 添加到模型中的所有属性,然后自己在操作中对其进行编码?
我能否访问在模型绑定(bind)期间发布给我的 HTML 而不会在我每次从 Request.Form 请求它时抛出 HttpRequestValidationException?
感谢您提供的任何帮助。
编辑 我不想关闭整个操作的验证。如果我想确保当有人以他们不应该输入的 html 格式输入 html 时不会抛出异常,那就有点过分了。
最佳答案
我也遇到了同样的问题。即使在这个较旧的线程上,我也想分享解决方案。答案很难找到,但非常简单。有一个扩展方法允许访问未经验证的表单和查询字符串。
System.Web.Helpers.UnvalidatedRequestValues unvalidatedRequest = System.Web.Helpers.Validation.Unvalidated(Context.Request)
System.Collections.Specialized.NameValueCollection form = unvalidatedRequest.form
根本不需要 requestValidationMode 或关闭验证。 This这篇文章让我找到了解决方案。
关于c# - 如何在模型绑定(bind)期间忽略 HttpRequestValidationException 和自己编码的 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5355668/