ASP.NET MVC 3 ValidateRequest(false) 不适用于 FormCollection

标签 asp.net asp.net-mvc-3

仅供引用,我正在使用 .NET 4.0/MVC 3。

在我的 Controller 中,以下是我的代码:

[HttpPost]
[ValidateInput(false)]
public ViewResult Edit(ContentTemplateView contentTemplateView, FormCollection collection)

当我不输入 HTML 时,一切正常,所以我知道正确的 Controller 正在被触发。另外,我在 web.config 文件中正确设置了以下内容:
<httpRuntime requestValidationMode="2.0"/>

只有当我包含 FormCollection(这个特定的 Controller 需要它)时,我才会遇到这个问题。那么我到底做错了什么?

[我已经完成了关于以下问题的建议,只要没有 FormCollection,它们就可以工作。他们都没有提供包含 FormCollection 的解决方案]
  • Why is ValidateInput(False) not working?
  • Asp.Net MVC Input Validation still firing after being disabled
  • ValidateInput Attribute Doesn't Seem To Work in ASP.NET MVC
  • 最佳答案

    在这个论坛的帮助下,我想我已经解决了自己的谜语:http://forums.asp.net/p/1621677/4163625.aspx

    我刚刚修改了我的 Controller ,使其不接受 Controller ,而是从请求中获取未经验证的表单集合[在 System.Web.Helpers 的帮助下]。

    using System.Web.Helpers;
    
    [HttpPost]
    [ValidateInput(false)]
    public ViewResult Edit(ContentTemplateView contentTemplateView)
    {
        FormCollection collection = new FormCollection(Request.Unvalidated.Form);
    

    关于ASP.NET MVC 3 ValidateRequest(false) 不适用于 FormCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4361907/

    相关文章:

    asp.net - 在客户端压缩文件

    c# - 动态加载数据ASPxPageControl

    asp.net-mvc-3 - 审查 Orchard 项目

    c# - 为 Sentinel 配置配置 ASP.NET Redis session 状态提供程序

    c# - 将十进制值保存到数字字段 SQL

    asp.net-mvc-3 - 在 ASP.NET MVC htmlAttributes 中使用 @data-bind 抛出异常

    asp.net-mvc-3 - 如何让 SignalR 在 _Layout.cshtml 中工作?

    asp.net-mvc-3 - MVC 3 数据库优先中的客户端验证

    c# - 我可以在加载事件时从 C# 的 div 标记中动态添加 HTML 吗?

    asp.net-mvc-3 - 从 3rd 方站点发布到我的 ASP.NET MVC 应用程序