[英]potentially dangerous request.form value was detected from the client innerhtml
[英]client side validation for asp.net mvc “A potentially dangerous Request.Form…
我想如何在asp.net mvc中为潜在危险的request.form实现客户端验证。
在这种情况下,我不想设置[ValidateInput(false)]
,并且向用户显示此错误消息页面不是用户友好的。 类似于[Required]
属性为客户端验证所做的事情。
我认为这有一个内置功能,因为它似乎是我常见的问题,但似乎我无法找到它。
您可以通过重写DefaultModelBinder.BindModel
方法在模型绑定期间捕获HttpRequestValidationException
。
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
try
{
return base.BindModel(controllerContext, bindingContext);
}
catch (HttpRequestValidationException)
{
bindingContext.ModelState.AddModelError(bindingContext.ModelName, "Illegal Html characters...");
return null;
}
}
在控制器操作中,您现在可以检查模型是否无效并根据需要重新显示视图。 jQuery不引人注目的验证应该照顾其余部分。
[HttpPost]
public virtual ActionResult Edit(ViewModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
}
如果您还没有自定义DefaultModelBinder
,则必须确保在应用程序启动时注册它。
ModelBinders.Binders.DefaultBinder = new CustomDefaultModelBinder();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.