Хотите отобразить сообщение в макете от дочернего действия?
Я хочу отобразить сообщение в макете от дочернего действия? Как я могу это сделать? Как и в моем макете, у меня есть форма входа в систему (отображается как дочернее действие).. поэтому, когда вход в систему не удается, я хотел бы показать сообщение в макете в определенном DIV. Проблема в том, что макет, вероятно, отображается перед дочерним представлением. Также есть еще одна проблема, макет отображается любым контроллером. Есть идеи?
1 ответ
Вы можете поместить в свой макет сводку проверки. (Синтаксис бритвы):
<div>@Html.ValidationSummary(false)</div>
Затем просто украсьте viewmodel, которая передается на ваш логин, с помощью атрибутов [Required].
public class LoginViewModel
{
[Required(ErrorMessage="Please enter a your user name.")]
public string UserName { get; set; }
[Required(ErrorMessage = "Please your password.")]
public string Password{ get; set; }
}
или если вы хотите поместить более общее сообщение об ошибке, просто оставьте свойства вашей viewmodel украшенными атрибутом [Required], затем в контроллере входа в методе POST сделайте что-то вроде этого:
[HttpPost]
public ActionResult Login(LoginViewModel viewModel)
{
if (!ModelState.IsValid)
{
ModelState.AddModelError("Error", "Sorry, your login failed, please try again.");
}
}
эта ошибка будет отображаться в сводке проверки.