MVC3,关闭不在ViewModel中的字段的字段验证

时间:2012-04-10 21:57:17

标签: asp.net-mvc-3 validation

我在MVC3项目中有一个表单。我的一个输入字段应该接受HTML。不幸的是,我没有这个值映射到的ViewModel。字段自动生成并自动读入。我收到以下错误。

  A potentially dangerous Request.Form value was detected from the client

由于没有viewmodel,我无法应用[AllowHTML]属性。有没有人知道不涉及禁用整个页面验证的解决方法?

谢谢

其他信息: 我可以通过执行以下操作来访问未经验证的值:

 using System.Web.WebPages;
 using System.Web.Helpers;

  .....Inside Controller....
  string value = Request.Unvalidated("input-40");

现在的问题是Request.Params集合引发了异常。我想访问所有其他值并让它们被验证...只是没有那个。有没有办法让我明确验证其他字段或访问经过验证的集合。

以下情况可以

  string value = System.Web.Something.ValidateInput(Request.Unvalidated("input-41"));

不幸的是我不知道这种方法在哪里/是否存在

2 个答案:

答案 0 :(得分:2)

您可以尝试ValidateInput(false)属性:

[ValidateInput(false)]
public ActionResult YourAction(FormCollection yourCollection)
{
    // your stuff
}

答案 1 :(得分:0)

对您的操作方法使用ValidateInput属性。似乎不安全但应该有效,现在无法测试。