来自控制器的错误无法在MVC中查看

时间:2015-01-27 14:26:03

标签: asp.net-mvc model-view-controller view

    if (user.UserName == DbData.UserName && DbData.Password.Equals(user.Password, tringComparison.CurrentCultureIgnoreCase))
                {
                   //redirect to main page //this is working fine
}

    else {
      ModelState.AddModelError("Error", "Username/Password not matching");
   ViewBag.Message = ModelState["Error"].Errors[0].ErrorMessage;
  return View();
    }

并在View中写道

@if(ViewBag.Message != null){

ViewBag.Message

}

但是视图中的错误不会出现在视图中

1 个答案:

答案 0 :(得分:0)

这是正常的,如果您在即时窗口中检查TempData ["错误"],您将看到它为空。 你需要给视图包提供一些东西才能在视图中获得一些东西。

<强>更新: 这会给你你的信息( &#34;用户名/密码不匹配&#34;)您可以将其设置为ViewBag。

ModelState["Error"].Errors[0].ErrorMessage

希望这能解决你的问题。

对于您的信息: ModelStateDictionary.AddModelError方法(String,Exception): 将指定的模型错误添加到与指定键关联的模型状态字典的错误集合中。 来自ModelState.AddModelError

<强>更新: 要在View中显示消息,请在ViewBag.Message

之前使用@符号
@if (!string.IsNullOrWhiteSpace(ViewBag.Message))
{
@ViewBag.Message
}