asp.net MVC 的客户端验证“潜在危险的请求表单...”
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();
相关文章:
- ajax请求的顺序总是不同的
- Meteor如何接收HTTP请求
- 有没有一种方法可以防止img get请求使用css或js发生
- 从ajax请求中获取javascript对象
- JSONP请求返回结果,但也触发error_callback
- 在localhost Dev Box上测试JSONP请求的最佳方式
- Ajax请求文档就绪会导致jquery加载缓慢
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- 在openshift node js应用程序中获取请求
- 反应路由器弄乱了请求网址
- 在我的情况下,如何进行http请求
- 使用密码对话框Javascript请求帮助
- servlet中的请求对象,而不是从jsp接收参数值
- asp.net MVC 的客户端验证“潜在危险的请求表单...”
- 针对潜在危险请求的JavaScript编码
- ASP.NET潜在危险请求Javascript Regex
- 如何避免这种“;潜在危险的请求”;
- 有潜在危险的请求.从客户端检测到表单值tbpassword="9 " Grfs-&3E"
- Javascript /剃刀请求.Params一个有潜在危险的请求.日志含义从客户端检测到QueryString值