我收到驗證消息「值xxx對yyy無效」。這發生在我發佈不正確的值爲雙重類型。我不知道如何改變它。覆蓋FluentValidation中的默認ASP.NET MVC消息
6
A
回答
7
不幸的是,這是不是一件FluentValidation有覆蓋能力 - MVC驗證的可擴展性模型在很多地方都有所限制,而且我一直無法找到覆蓋這個特定消息的方法。
您可以使用的另一種方法是在視圖模型上定義兩個屬性 - 一個作爲字符串,另一個作爲可爲空的double。您將使用字符串屬性來實現MVC綁定目的,並且double屬性將執行轉換(如果可以)。然後,您可以將其用於驗證:
public class FooModel {
public string Foo { get; set; }
public double? ConvertedFoo {
get {
double d;
if(double.TryParse(Foo, out d)) {
return d;
}
return null;
}
}
}
public class FooValidator : AbstractValidator<FooModel> {
public FooValidator() {
RuleFor(x => x.ConvertedFoo).NotNull();
RuleFor(x => x.ConvertedFoo).GreaterThan(0).When(x => x.ConvertedFoo != null);
}
}
0
你可以使用.WithMessage()
方法來自定義錯誤消息:
RuleFor(x => x.Foo)
.NotEmpty()
.WithMessage("Put your custom message here");
,如果你想使用本地化的信息與資源:
RuleFor(x => x.Foo)
.NotEmpty()
.WithLocalizedMessage(() => MyLocalizedMessage.FooRequired);
+1
它不起作用。當ASP.NET嘗試將字符串轉換爲雙倍時出現錯誤 – SiberianGuy
相關問題
- 1. Parsely.js覆蓋默認的驗證消息
- 2. 笨覆蓋默認的驗證消息
- 3. 覆蓋ModelForm的默認錯誤消息
- 4. Java bean驗證 - 覆蓋默認消息
- 5. asp.net mvc覆蓋驗證消息
- 6. 覆蓋ASP.NET MVC 3中的默認EditorFor模板選擇RC
- 7. 如何覆蓋Grails中的默認錯誤消息?
- 8. 使用ApplicationMenuItem覆蓋RIM API中的默認消息發送方
- 9. 覆蓋MVCContrib Grid中默認的「無數據」消息
- 10. 覆蓋PHP中的默認異常消息
- 11. 無法覆蓋默認取消目的
- 12. 覆蓋ASP.NET控件的默認Html
- 13. ASP.NET MVC的QueryString默認覆蓋提供的值?
- 14. Django的:覆蓋默認的用戶模型的錯誤消息
- 15. 的Django如何覆蓋默認形式的錯誤消息
- 16. Django的覆蓋默認形式的錯誤消息
- 17. jquery blockui插件不會覆蓋默認的「等待」消息
- 18. 覆蓋播放2.0的默認i18n消息
- 19. 覆蓋默認的angularjs錯誤消息 - 「必需」「無效」
- 20. 覆蓋默認的jquery-steps錯誤消息
- 21. 使用JavaScript覆蓋默認的PHP錯誤消息
- 22. 的jqGrid - 覆蓋AJAX默認選項時,觸發加載...消息
- 23. 覆蓋默認的android消息傳遞應用程序
- 24. MVC 3覆蓋驗證消息的CSS
- 25. Spring MVC + Hibernate驗證器:我如何覆蓋/國際化默認錯誤消息?
- 26. 覆蓋默認值
- 27. ASP.NET MVC - 默認範圍驗證錯誤信息沒有被覆蓋
- 28. 如何更改ASP.NET MVC中的默認驗證錯誤消息?
- 29. fluentvalidation更改int/long的默認錯誤消息
- 30. 在asp.net上覆蓋CSV導出默認設置mvc + stimulsoft
您是否嘗試與ASP.NET MVC團隊聯繫? – SiberianGuy
是的,我在MVC2預覽期間多次提出它,但從未改變過。 –
讓我們再試一次:http://forums.asp.net/p/1721550/4601626.aspx/1?p=True&t=634518558226229075 – SiberianGuy