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

doc*_*day 18 asp.net asp.net-mvc-3

仅供参考我使用的是.NET 4.0/MVC 3.

在我的控制器中,以下是我的代码:

[HttpPost]
[ValidateInput(false)]
public ViewResult Edit(ContentTemplateView contentTemplateView, FormCollection collection)
Run Code Online (Sandbox Code Playgroud)

当我不输入HTML时,一切正常,所以我知道正在触发正确的控制器.另外,我在web.config文件中正确设置了以下内容:

<httpRuntime requestValidationMode="2.0"/>
Run Code Online (Sandbox Code Playgroud)

当我包含FormCollection(这个特定的控制器需要)时,我才会遇到这个问题.那我究竟做错了什么?

[我已经完成了以下问题的建议,只要没有FormCollection,它们就可以工作.他们都没有提供包含FormCollection的解决方案]

doc*_*day 22

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

我刚刚修改了我的Controller,因此它不接受Controller,而是从Request [借助System.Web.Helpers]抓取未经验证的表单集合.

using System.Web.Helpers;

[HttpPost]
[ValidateInput(false)]
public ViewResult Edit(ContentTemplateView contentTemplateView)
{
    FormCollection collection = new FormCollection(Request.Unvalidated.Form);
Run Code Online (Sandbox Code Playgroud)


Joh*_*ika 7

我刚安装了ASP.NET MVC 3 RC2,这个bug已修复.以下代码现在按预期工作.

[HttpPost]
[ValidateInput(false)]
public ViewResult Edit(FormCollection form)
{
}
Run Code Online (Sandbox Code Playgroud)