来自控制器的错误无法在 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
}
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
}