当我在表单的输入字段中抨击特殊字符时,当我点击提交时,我回来的只是一个空白页面,因为ASP.NET检测到潜在的恶意输入并将错误输入到我的事件日志中,在达到我的MVC控制器动作之前。
我宁愿向用户返回错误,因此他们不只是得到一个空白页面。所以我想使用ValidateInput(false)然后从我的代码中调用验证器,这样我就可以发送一个响应。如何从ASP.NET MVC操作中调用验证器?
答案 0 :(得分:1)
我对你的问题感到困惑。你是否正在寻找调用模型验证的代码?如果是,您可以通过检查ModelState.IsValid属性来执行此操作。如果您的任何验证失败,它将返回false,在您的视图中,您将看到错误消息。如果您愿意,还可以从操作方法中指定一些自定义错误消息。
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
//Model validation is successful. Proceed to other stuff
//If you want to return some custom error message, do like this
ModelState.AddModelError("", "The user name is deactivated");
}
return View(model);
}
答案 1 :(得分:0)
您想在服务器端验证输入吗?
您可以使用客户端验证,您需要在模型属性上添加正则表达式属性,并为其设置一个很好的错误消息。如下所示
[RegularExpression("your regex", ErrorMessage = @"please check your input .... ")]
public string MyInput { get; set; }