c# - 如何在模型绑定(bind)期间忽略 HttpRequestValidationException 和自己编码的 HTML?

标签 c# asp.net-mvc-3 model-binding

我正在尝试弄清楚如何忽略在模型绑定(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/

相关文章:

c# - 如何在解决方案中的项目之间共享单个配置?

sql - 如何在内容类型中最好地集成现有数据库数据

C#- ASP.net MVC 3- 向表中插入多行

unit-testing - 使用 Moq 和 EF 4.1 模拟 UnitOfWork

jquery - 如何使用 Jquery Ajax 进行模型绑定(bind)

json - 来自 JSON 的 WebAPI 模型绑定(bind)

c# - Webkit 的 .NET 包装器

c# - Func<Task> 伪装成 Action

c# - 我应该处理 FontFamily.Families 结果吗?

c# - jQuery AJAX 的 ASP.Net MVC 路由问题