2017-01-20 2 views
0

У меня есть класс модели, в которой я сделал что-то вроде этого:сделать необходимый атрибут MVC 4

[Required] 
    public string Name {get; set;} 

    [Required] 
    public string Username {get; set;} 

Когда я создать представление на основе этого класса и нажимает кнопку отправки без каких-либо данных, она не покажите сообщение подтверждения для этого обязательного атрибута. Зачем?

+0

Вы включили соответствующие скрипты для проверки JQuery? Вы включили '@ Html.ValidationMessageFor()' для каждого свойства. Включает ли вы тег формы. Как можно ответить на это, если вы не показываете свой код –

ответ

1

Вы должны сделать определенные вещи, чтобы заставить его работать в соответствии с вашими ожиданиями. Во-первых, вы должны убедиться, что у вас есть положение для отображения сообщений об ошибках, связанных с конкретной области, как следующее в вашем .cshtml странице

@Html.EnableClientSideValiation() 
@Html.EnableUnObstructiveJavascript() 

// your other form elements 
@Html.TextBoxFor(x=> x.Name) 
@Html.ValidationMessageFor((x=> x.Name) // this will render validations if any 

сделать триггер валидаций на клиентской стороне это сам, вы должны позволить стороне клиента валидаций и включают требуется JS файлы

вы должны также сделать соответствующие проверки на стороне сервера, в методе действия в контроллере вы должны иметь что-то вроде ...

[HttpPost] 
public ActionResult Save(Your_Type model) 
{ 
    if(ModelState.IsValid()) // it will ensure all your annotations are passed 
    { 
    // save to server 
    // redirect to appropriate page 
    } 
    else 
    { 
    return View(model); // it will render same form again with already entered values and errors 
    } 
} 
+0

, вы пробовали решение? –

1

во-первых, показать нам вы r, а также использовать html-помощник проверки достоверности, как показано ниже.

@Html.ValidationMessageFor(m=>m.Name) 

использовать это после того, как вы html-помощник, для которого хотите получить доступ к сообщению.

Update

Вы также можете пользовательские изменить модель так же, как

 [Required(ErrorMessage="Enter The Name")] 
    public string Name {get; set;} 

    [Required(ErrorMessage="Enter The Username")] 
    public string Username {get; set;} 
Смежные вопросы