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

error from the controller not coming to view in MVC

    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();
    }

我在视图中写道

@if(ViewBag.Message != null){

ViewBag.Message

}

但是 viewbag 中的错误并没有出现在视图中

这很正常,如果您立即检查 window 中的 TempData["Error"],您会发现它为空。 需要给view bag一些东西才能在view side得到一些东西。

更新: 这会给你你的信息( "Username/Password not matching") 您可以将其设置为 ViewBag。

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

希望这能解决您的问题。

供您参考: ModelStateDictionary.AddModelError 方法(字符串,异常): 将指定的模型错误添加到与指定键关联的模型状态字典的错误集合中。 来自 ModelState.AddModelError

更新: 要在视图中显示消息,请在 ViewBag.Message

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