我有一個可爲空的int字段,如下所示。顯然這不是必填字段。如何設置默認錯誤消息
[DisplayName("Previous Job No:")]
public int? previousJobId { get; set; }
目前,如果用戶輸入是無效的,它顯示默認的錯誤消息The field Previous Job No: must be a number.
我怎樣才能改變使用數據註釋此默認的錯誤信息?
謝謝!
我有一個可爲空的int字段,如下所示。顯然這不是必填字段。如何設置默認錯誤消息
[DisplayName("Previous Job No:")]
public int? previousJobId { get; set; }
目前,如果用戶輸入是無效的,它顯示默認的錯誤消息The field Previous Job No: must be a number.
我怎樣才能改變使用數據註釋此默認的錯誤信息?
謝謝!
如果你做的事:
[DataType(DataType.Int32, ErrorMessage = "Custom Error Msg")]
public int? previousJobId { get; set; }
不幸的是,我無法測試該ATM。
第二次嘗試:
這是不漂亮,但它會節省你不必創建一個自定義的數據註解。這反過來又使您不必編寫自定義jQuery驗證。我能夠測試這個,它爲我工作。但是,如果你喜歡這種風格,這取決於你。
[DisplayName("Previous Job No:")]
[RegularExpression("^[0-9]+$", ErrorMessage = "Custom Error Msg")]
public string previousJobId { get; set; }
private int? _previousJobId2;
public int? previousJobId2
{
get
{
if (previousJobId == null)
{
return null;
}
else
{
return Int32.Parse(previousJobId);
}
}
set
{
_previousJobId2 = value;
}
}
您可以用控制器測試:
[HttpPost]
public ActionResult Index(HomeViewModel home)
{
if (ModelState.IsValid)
{
int? temp = home.previousJobId2;
}
return View(home);
}
您將引用字符串中的視圖
@Html.LabelFor(model =>model.previousJobId)
這很聰明,但不幸的是沒有DataType.Int32這樣的DataType – Kaf
好吧,我給了它另一個鏡頭:/ – ScubaSteve
好吧,我所需要的只是'[RegularExpression(「^ [0-9] + $」,ErrorMessage =「自定義錯誤消息」)]'並且完成了這項工作。不知道爲什麼你把所有其他的東西。當然你已經展示了道路。歡呼 – Kaf
嘗試
[Range(1, 1000, ErrorMessage = "Enter a integer value")]
public int? previousJobId { get; set; }
或者使用外部項目如果可行http://dataannotationsextensions.org/Integer/Create
這裏是他們是如何實現的吧:https://github.com/srkirkland/DataAnnotationsExtensions/blob/master/DataAnnotationsExtensions/IntegerAttribute.cs
第一種方法是錯誤的,因爲不存在稱爲整數的這種註釋。第二位顯然驗證了範圍,但非int輸入。 – Kaf
我不好,我以爲有最小的價值。將編輯帖子。 –
哦,我記得在一個示例項目中,我們使用它從一個庫:http://dataannotationsextensions.org/Integer/Create –
[?提供在ASP.Net MVC 2非歸因模型驗證本地化錯誤消息]的可能重複(http://stackoverflow.com/questions/2480557/provide-localized-error-messages-for-non-attributes-model-validation-in-asp-ne) – nemesv