【发布时间】:2020-02-29 18:46:00
【问题描述】:
控制器
[HttpPost]
public ActionResult AddEmployee(EmpModel emp)
{
try
{
if(ModelState.IsValid)
{
EmpRepository empRepository = new EmpRepository();
empRepository.AddEmployee(emp);
ViewBag.Message("Employee Record Successfully");
}
return View(new EmpModel());
}
catch(Exception ex)
{
throw ex;
}
}
查看
<div class="col-md-offset-2 col-md-10">
@ViewBag.Message
</div>
得到我在这个问题的标题中提到的异常。我在这里错过了什么?
【问题讨论】:
-
如果模型状态无效,则不会设置消息。因此,存在不会填充 Message 的潜在情况。也许这就是问题所在?
-
P.S.一般而言,
catch(Exception ex) { throw ex; }是一种反模式,没有任何效果(除了浪费 CPU 周期)。如果您只是要重新抛出完全相同的异常,那么该子句的意义何在?捕捉应该是有原因的 - 例如。通常用于记录错误,对用户隐藏它,防止程序崩溃并转移到其他更可接受的状态(例如,显示用户友好的消息,允许重试或类似的)。仅仅为了重新投掷而抓捕是完全没有意义的。 -
@ADyson 它通过了那个条件并且完美地存储在数据库中的所有数据。当涉及到 Viewbag 时,它会捕获异常。
-
@ADyson 你是对的.. 只是放在那里,因为消息没有显示在视图中。检查我是否添加了 try catch .. 不过感谢您提供的信息。
标签: asp.net-mvc