2015-05-27 3 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

Смежные вопросы