【发布时间】:2013-04-18 14:09:18
【问题描述】:
我的 MVC3 应用程序中有一个简单的 ajax 表单,用于发送电子邮件:
@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" />
}
如果操作未能发送消息,则会引发异常。异常处理并显示在 showError(error){} javascript 函数中:
function showError(error) {
$("#error").text(error.responseText);
};
问题是:error.responseText是整个错误页面的html转储。
我只需要显示异常错误消息(MVC3 中的 ex.Message 中的任何内容)。
“public ActionResult SendMessage(string message) { }”的实现无关紧要。
我需要知道如何仅在 showError(error) javascript 处理程序中显示异常消息。
非常感谢。
[HttpPost]
public ActionResult SendMessage(string message)
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress("sender@gmail.com");
mail.Subject = "Some Message";
mail.Body = message;
mail.To.Add("recepient@gmail.com");
SmtpServer.Send(mail);
return null;
}
【问题讨论】:
-
请显示您的 SendMessage 操作...
-
不确定它与问题有什么关系... 8|
-
b/c 你不能使用 onFailure 除非你想捕获一个 http 错误。想了解你如何返回错误
标签: jquery asp.net-mvc-3 ajax.beginform