我将在asp.net mvc 4中创建表单联系人。我还在html和控制器中编写代码。他看起来像:
[HttpPost]
public ActionResult Kontakt(KontaktModel k)
{
if (ModelState.IsValid)
{
try
{
MailMessage msg = new MailMessage();
SmtpClient smtp = new SmtpClient();
MailAddress from = new MailAddress(k.Mail.ToString());
StringBuilder sb = new StringBuilder();
msg.To.Add("myemail@gmail.com");
msg.Subject = k.Temat.ToString();
msg.IsBodyHtml = false;
smtp.Host = "smtp.gmail.com";
smtp.Port = 587;
sb.Append("Nick / Imię i nazwisko: " + k.Name);
sb.Append(Environment.NewLine);
sb.Append("Typ problemu: " + k.TypProblemu);
sb.Append(Environment.NewLine);
sb.Append("Treść:");
sb.Append(Environment.NewLine);
sb.Append(k.Tresc);
msg.Body = sb.ToString();
smtp.Send(msg);
msg.Dispose();
return View("SUCCESS");
}
catch(Exception)
{
return View("Error");
}
}
return View();
}
}
但是当我点击按钮应用程序返回Error.cshtml。我有一个问题,我怎么知道如何捕获异常?我不知道为什么它不起作用。有什么想法吗?
答案 0 :(得分:1)
答案应该是获取异常消息并放入ViewBag.Message并在Error.cshtml视图中显示它。
@ ViewBag.Message
但很高兴知道异常和异常处理。如果您只声明一个尝试捕获并且发生异常,那么如果您想要了解更多有关详细信息,请执行尝试捕获(例外)发生异常时你可以声明一个变量,例如:
try{
///code
}catch(Exception e){}
然后你可以在变量里面观察更多细节。
好的做法是知道您可以接收和处理的异常类型,这是一个有良好解释的链接Exception and Exception Handling
示例:
try
{
//code
}
catch(Exception c)
{
ViewBag.Message = c.Message
return View("ERROR");
}