0

可能重复:
在 ASP.NET MVC 中自己处理验证失败

我有一个接受 HTML 输入的操作方法(可能)。

[ValidateInput(false)]
[HttpPost]
public ActionResult Cms(string pageContent)
{
   CmsData = pageContent;
   return Redirect("/home/cms");
}

所以我不希望可怕的“潜在危险请求......”错误导致 POST 崩溃。所以我在ValidateInput = false上面设置。

但是,我想在代码中执行相同的检查并对它做出反应(比如发布一条消息说 HTML 是不允许的)而不是崩溃。

我知道我可以运行某种代码黑名单检查,但我宁愿不这样做。我宁愿让 MVC 告诉我,但不要让页面完全崩溃并让我处理错误消息。

简单的?可能的?

4

1 回答 1

1

我想问题是关于动态调用RequestValidator以了解该值是否不包含任何 html。这不简单!原因是检查的方法是IsValidRequestString保护的内部虚拟方法,因此您不能只在外部调用它,而是通过创建自定义方法可以实现这一点(您可能必须创建一个调用受保护方法的公共方法)。RequestValidatorRequestValidator

于 2012-10-15T14:50:34.327 回答