以联系表格捕获例外情况

时间:2014-07-13 14:12:55

标签: asp.net asp.net-mvc asp.net-mvc-4

我将在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。我有一个问题,我怎么知道如何捕获异常?我不知道为什么它不起作用。有什么想法吗?

1 个答案:

答案 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");
}