我有一个采用HTML输入的动作方法(可能)。
[ValidateInput(false)]
[HttpPost]
public ActionResult Cms(string pageContent)
{
CmsData = pageContent;
return Redirect("/home/cms");
}
所以我不希望可怕的“一个有潜在危险的请求......”错误来崩溃POST。所以我在上面设置ValidateInput = false
。
但是,我想在代码中执行相同的检查并对其做出反应(比如发布一条消息说不允许HTML),而不是崩溃。
我知道我可以运行某种代码黑名单检查,但我不愿意。我宁愿让MVC告诉我,但没有完全崩溃页面,让我处理错误信息。
容易吗?可能的?
答案 0 :(得分:1)
我想问题是关于动态调用RequestValidator
以了解该值是否不包含任何html。这不简单!原因是IsValidRequestString
的{{1}}方法检查是受保护的内部虚拟,因此您不能仅在外部调用它,而是创建自定义{{3}你可能会实现这一点(你可能需要创建一个调用受保护方法的公共方法)。