我正在尝试使用ModelState.AddModelError显示输入的错误消息。但是,错误消息将不会显示在视图上。以下是我的代码:
控制器:
[HttpPost]
public ActionResult Connection(Login login)
{
if (!(ModelState.IsValid))
{
ModelState.AddModelError("Username", "Veuillez entrer un nom utilisateur");
ModelState.AddModelError("Password", "Veuillez entrer un mot de passe");
return View("LoginPage", login);
}
return RedirectToAction("Index");
}
我的观点:
@{
ViewBag.Title = "LoginPage";
}
@model LayoutProject.Models.Login
<h2>LoginPage</h2>
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<form action="/Home/Connection" method="post">
<p>
@Html.LabelFor(l=>l.Username)
@Html.TextBoxFor(l=>l.Username)
@Html.ValidationMessage("Username")
</p>
<p>
@Html.LabelFor(l=>l.Password)
@Html.TextBoxFor(l=>l.Password)
@Html.ValidationMessage("Password")
</p>
<p>
<input id="createBook" type="submit" value="Submit"/>
</p>
</form>
我的模特:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
namespace LayoutProject.Models
{
public class Login
{
[Required]
public String Username { get; set; }
[Required]
public String Password { get; set; }
}
}
当我提交表单时,它将通过if语句进入控制器,但在我看来它将显示默认错误消息:Username字段是必需的。不是我通过的那个。求救!
答案 0 :(得分:0)
要在视图页面上显示模型状态错误,您需要配置ValidationSummary
。
您可以在视图中执行类似的操作。
@Html.ValidationSummary(false, "youkey like username or whatever", new { @class = "text-danger" })
请在false
中传递Html.ValidationSummary
参数。之后,您可以看到模型状态错误。