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. model.isvalid mvc服務棧流利的驗證
- 4. 在ASP.net MVC流利的驗證 - 數據庫驗證
- 5. 流利的驗證。繼承驗證類
- 6. 驗證使用流利的驗證
- 7. 流利的驗證Ninject
- 8. 流利驗證不工作
- 9. 流利添加驗證
- 10. NHibernate驗證與流利
- 11. Knockout + mvc 3 +驗證
- 12. ASP.NET MVC 3驗證
- 13. ASP MVC客戶端驗證和流利的幫手
- 14. 禁止CA1062用流利的驗證
- 15. 流利的驗證測試工作不
- 16. 流利的驗證(無法啓動)
- 17. 流利的驗證單元測試
- 18. 流利的驗證與動態消息
- 19. 流利的驗證使用LINQ let?
- 20. 流利的驗證 - 組中的一個自定義的驗證
- 21. 流利的驗證驗證的生成文本框
- 22. MVC 3中的Windows身份驗證3
- 23. 驗證錯字3流程
- 24. 條件驗證使用流利的驗證
- 25. 流利的驗證:我如何重用屬性驗證(投影)
- 26. 流利驗證自定義的驗證規則
- 27. 流利的驗證,必須自定義驗證
- 28. MVC 3驗證日期
- 29. ASP.NET MVC 3驗證命令
- 30. ASP.NET MVC 3遠程驗證
我能以某種方式保存驗證錯誤:例如,如果您想驗證只爲一個特定的規則集運行,那麼你可以歸咎於這將是驗證參數指定規則集名稱從之前的提交? – Cipiripi 2012-07-18 16:04:28
呃什麼? *以前的提交意味着什麼*? HTTP是一種無狀態協議。我認爲你應該解釋你到底想達到什麼目的。也許有更好的方法。 – 2012-07-18 16:14:21
我的表單上有兩個提交按鈕。當第一個被點擊時,輸入不應該被驗證,但是當另一個被點擊時,輸入應該被驗證,並且如果用戶再次點擊第一個,則應該仍然顯示錯誤消息... – Cipiripi 2012-07-18 16:17:13