2015-05-27 52 views
0

我有三個文本框,我需要檢查是否有一個字段沒有輸入並顯示錯誤(只有一個錯誤)。這是可能的MVC驗證或我需要JavaScript驗證?如何使用MVC驗證多個文本框?

@Html.TextBoxFor(m => m.Register.Day, new { id = "day_birthdate" }) 
@Html.TextBoxFor(m => m.Register.Month, new { id = "month_birthdate"}) 
@Html.TextBoxFor(m => m.Register.Year, new { id = "year_birthdate" }) 

型號:

public int? Day { get; set; } 

    public int? Month { get; set; } 

    public int? Year { get; set; } 

我不想得到三個不同的錯誤......我不希望這個

@Html.TextBoxFor(m => m.Register.Day, new { id = "day_birthdate" }) 
@Html.ValidationMessageFor(m => m.Register.Day) 

@Html.TextBoxFor(m => m.Register.Month, new { id = "month_birthdate"}) 
@Html.ValidationMessageFor(m => m.Register.Month) 

@Html.TextBoxFor(m => m.Register.Year, new { id = "year_birthdate" }) 
@Html.ValidationMessageFor(m => m.Register.Year) 
+0

你能展示你的模型嗎?那就是你應該把你的驗證。 – Donal

+1

這是關於你的[上一個問題](http://stackoverflow.com/questions/30169284/mvc-client-side-validation/30169499#30169499)? – adricadar

+0

@Donal有我的模型... – None

回答

0
in the class model for Register,add 
[Required(ErrorMessage = "required")] 
public int Day 
{ 
get; 
set; 
} 


    to get [Required(ErrorMessage = "required")] this add namespace 
     using System.ComponentModel.DataAnnotations; 
     in controller,also check if(modelstate.isvalid==true) 
1

您還可以添加一個錯誤信息給模型狀態如:

ModelState.AddModelError("Day", "Something is wrong with Day"); 

要將上述錯誤綁定到特定屬性,請將屬性名稱指定爲第一個參數=>「日」。

0

型號:

[Required(ErrorMessage = "required")] 
public int? Day { get; set; } 

[Required(ErrorMessage = "required")] 
public int? Month { get; set; } 

[Required(ErrorMessage = "required")] 
public int? Year { get; set; } 
+0

我只想要一個錯誤,如果這些領域是空的...不是三個...閱讀我的問題 – None

+0

@在這種情況下,請編輯您的問題,並使其更加清晰!我不認爲你在.NET MVC中提供了什麼,所以你應該實現一個自定義驗證。看到這個問題:http://stackoverflow.com/questions/8242847/model-validation-asp-net-mvc-3-conditional-required-attribute 我希望它可以幫助你。 – Fourat

0

首先,你需要在你的模型需要哪些字段指定。

[Required] 
public int? Day { get; set; } 

[Required]  
public int? Month { get; set; } 

[Required] 
public int? Year { get; set; } 

*您需要導入命名空間System.ComponentModel.DataAnnotations得到[Required]

然後在視圖中,您需要添加驗證消息

@Html.TextBoxFor(m => m.Register.Day, new { id = "day_birthdate" }) 
@Html.ValidationMessageFor(m => m.Register.Day) 

@Html.TextBoxFor(m => m.Register.Month, new { id = "month_birthdate"}) 
@Html.ValidationMessageFor(m => m.Register.Month) 

@Html.TextBoxFor(m => m.Register.Year, new { id = "year_birthdate" }) 
@Html.ValidationMessageFor(m => m.Register.Year) 

讓我知道,如果它的工作原理。

+0

它會工作,只是我只想要這三個字段的一個錯誤,而不是每個字段的錯誤,如果你知道我的意思 – None

+0

你需要什麼錯誤信息... –

+0

我只需要*(只有一個)如果年月或日是空的 – None