在mvc 4中,我必须遵循以下代码段:
[HttpPost]
[ValidateInput(false)]
public async Task<ActionResult> EmailHandle()
{
OtherClass.SomeProcess(Request.Form);
}
public static class OtherClass
{
public static void SomeProcess(NameValueCollection coll)
{
var value = coll["someKey"];
}
}
问题在于,尽管有ValidateInput(false)
,我仍然无法从收藏中获得价值。 (var value = coll["someKey"];
)由于错误:
A potentially dangerous Request.Form value was detected from the client
为什么还会发生这种情况?我不想全局禁用验证。
答案 0 :(得分:2)
发现问题。要允许读取危险值,我们可以使用:
Request.Unvalidated().Form
Unvalidated()
扩展方法在System.Web.Helpers
中可用。
答案 1 :(得分:0)
我认为您应该使用
[AllowHtml]