1
A
回答
2
假设你正在使用的AttributedValidatorFactory
和你想禁用验证为家庭控制器上的索引操作的POST动词,你可以写一个自定义的验证工厂:
public class MyAttributedValidatorFactory : AttributedValidatorFactory
{
private readonly Func<HttpContextBase> _contextAccessor;
public MyAttributedValidatorFactory(Func<HttpContextBase> contextAccessor)
{
_contextAccessor = contextAccessor;
}
public override IValidator GetValidator(Type type)
{
var context = _contextAccessor();
var rd = context.Request.RequestContext.RouteData;
var action = rd.GetRequiredString("action");
var controller = rd.GetRequiredString("controller");
if (string.Equals("post", context.Request.HttpMethod, StringComparison.OrdinalIgnoreCase) &&
string.Equals("index", action, StringComparison.OrdinalIgnoreCase) &&
string.Equals("home", controller, StringComparison.OrdinalIgnoreCase)
)
if (type == typeof(MyViewModel))
{
return null;
}
return base.GetValidator(type);
}
}
将用于以取代您的默认号码Application_Start
:
FluentValidationModelValidatorProvider.Configure(config =>
{
Func<HttpContextBase> contextAccessor =
() => new HttpContextWrapper(HttpContext.Current);
config.ValidatorFactory = new MyAttributedValidatorFactory(contextAccessor);
});
然后如果您有以下行为离子主控制器上:
[HttpPost]
public ActionResult Index(MyViewModel model)
{
...
}
FluentValidation不会踢
0
干草男人你错过fluentvalidation的一些重要的点称为验证定制。
发现这里http://fluentvalidation.codeplex.com/wikipage?title=mvc
验证定制
随着FluentValidation V3可以使用CustomizeValidatorAttribute配置如何验证将会运行。
public ActionResult Save([CustomizeValidator(RuleSet="MyRuleset")] Customer cust) {
// ...
}
这
相关问题
- 1. 流利验证在MVC
- 2. ASP.net MVC-流利的AJAX表单验证
- 3. 在ASP.net MVC流利的验证 - 数据库验证
- 4. 流利的验证。继承验证类
- 5. 流利的验证Ninject
- 6. 流利验证不工作
- 7. NHibernate验证与流利
- 8. ASP.NET MVC 3验证
- 9. Knockout + mvc 3 +验证
- 10. 流利的验证与动态消息
- 11. 流利的验证单元测试
- 12. 流利的验证(无法启动)
- 13. 禁止CA1062用流利的验证
- 14. 验证错字3流程
- 15. MVC 3中的Windows身份验证3
- 16. 流利的验证:我如何重用属性验证(投影)
- 17. 流利验证自定义的验证规则
- 18. 流利的验证,必须自定义验证
- 19. MVC 3和JQuery UI验证
- 20. MVC输入验证3
- 21. Asp.NET MVC 3 ModelBinding验证
- 22. ASP.NET MVC 3 - 模型验证
- 23. Spring MVC 3 - >验证
- 24. ASP.NET MVC 3验证命令
- 25. HTML MVC 3字段验证
- 26. ASP.NET MVC 3 - 验证问题
- 27. Jpa和spring 3 mvc验证
- 28. MVC 3复选框验证
- 29. AntiForgeryToken验证Asp.Net MVC 3
- 30. ASP.NET MVC 3验证和AJAX
我能以某种方式保存验证错误:例如,如果您想验证只为一个特定的规则集运行,那么你可以归咎于这将是验证参数指定规则集名称从之前的提交? – Cipiripi 2012-07-18 16:04:28
呃什么? *以前的提交意味着什么*? HTTP是一种无状态协议。我认为你应该解释你到底想达到什么目的。也许有更好的方法。 – 2012-07-18 16:14:21
我的表单上有两个提交按钮。当第一个被点击时,输入不应该被验证,但是当另一个被点击时,输入应该被验证,并且如果用户再次点击第一个,则应该仍然显示错误消息... – Cipiripi 2012-07-18 16:17:13