Изменение текста, если форма имеет ошибку - PullRequest
2 голосов
/ 30 ноября 2011

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

Единственный способ, которым я могу думать, - это скрыть исходный текст (возможно, в @Html.Label)затем показывая @Html.ValidationSummary.Тем не менее, я чувствую, что, скорее всего, есть гораздо более эффективный способ сделать это.

Кто-нибудь может помочь?

Ответы [ 3 ]

2 голосов
/ 30 ноября 2011

Я бы имел помощника @Html.Label и использовал бы объект ViewBag для передачи ему данных.Таким образом, в вашем контроллере, когда вы проверяете на ModelState.IsValid, если это ложно, вы можете установить свойство ViewBag так, чтобы оно передавалось помощнику меток.

Имеет смысл?Вот как я это сделаю.

0 голосов
/ 30 ноября 2011

Нет, с подходом проблем нет.
Я обычно использую один div с jquery для таких вещей, как проверка формы и т. Д. Я создаю один div на странице, где любое руководство может быть отображено для руководства пользователя.
ex:
если я отображаю какую-то информацию для пользователя, она будет отображаться следующим образом:

div id='divMessage'</div>

$('#divMessage').html('Please fill the following form.').removeClass().addClass('msg');

Хотя в случае какой-либо ошибки для отображения сообщения об ошибке будет использоваться тот же div:

$('#divMessage').html('some error occurred.').removeClass().addClass('errmsg');

Я надеюсь до тех пор, пока не будет полезен.

0 голосов
/ 30 ноября 2011

включить сводку проверки

@Html.ValidationSummary(true)

в вашем post ActionResult проверьте ModelState

[HttpPost]
public ActionResult Foo( Bar _bar){

  if(ModelState.IsValid){
    //noral course of action
   return RedirectToAction("Foo"); //Redirect to the GET method
  }
   ModelState.AddModelError("", "|Your Message Here");
 return View(_bar);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...