У меня есть форма, которая собирает данные с использованием ASP.NET MVC. Это выглядит так:
[AcceptVerbs(HttpVerbs.Post)]
[AutoValidate]
public ActionResult Contact(ContactMessage msg)
{
if(ModelState.IsValid)
{
try
{
this.messengerService.SendMail(msg);
RedirectToAction("Index");
}
catch (Exception ex)
{
ModelState.AddUnhandledError(ex);
}
}
return View(msg);
}
Я использую валидации asp.net mvc и валидацию состояния модели, чтобы позаботиться о отображении сообщений о недопустимых правилах. Все работает.
Теперь я хочу отправить действие, используя форму ajax, и отобразить сообщение об успешном завершении действия. Я попытался использовать приведенный ниже код, и он работает, когда операция завершается успешно, но когда происходит сбой (модель имеет ошибки), вся страница снова отображается в DIV, который отображает сообщение об успехе! Это возможно?
[AcceptVerbs(HttpVerbs.Post)]
[AutoValidate]
public ActionResult Contact(ContactMessage msg)
{
if(ModelState.IsValid)
{
try
{
this.messengerService.SendMail(msg);
return Content("Message sent");
}
catch (Exception ex)
{
ModelState.AddUnhandledError(ex);
}
}
return View(msg);
}