У меня есть эта простая форма ajax в моем приложении MVC3, которая отправляет сообщение электронной почты:
@using (Ajax.BeginForm("SendMessage", new AjaxOptions {
LoadingElementId = "wait",
OnSuccess = "loadMessages",
OnFailure = "showError" }))
{
<input type="text" name="message" placeholder="Message" />
<input type="submit" name="submit" value="Send" />
}
Если действию не удается отправить сообщение, оно создает исключение. Исключение обрабатывается и отображается в javascript-функции showError(error){}:
function showError(error) {
$("#error").text(error.responseText);
};
Проблема в следующем: error.responseText — это html-дамп всей страницы с ошибкой.
Мне нужно отобразить только сообщение об ошибке исключения (независимо от того, что находится в ex.Message в MVC3).
Реализация «public ActionResult SendMessage (строковое сообщение) {}» не имеет значения.
Мне нужно знать, как отображать сообщение об исключении только в обработчике javascript showError(error).
Огромное спасибо.
[HttpPost]
public ActionResult SendMessage(string message)
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress("[email protected]");
mail.Subject = "Some Message";
mail.Body = message;
mail.To.Add("[email protected]");
SmtpServer.Send(mail);
return null;
}