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