ASP.NET MVC 中未出现验证消息

Validation message doesn't appear in ASP.NET MVC

我正在使用 ASP.NET MVC 进行表单验证。我有一页“Users”,其中有两种形式,名为“adduser”形式和“edituser[=27=” ]" form.I正在尝试对两种形式的 m.user.firstName 属性 应用相同的验证消息。

添加用户表单:

<form id="addUserForm" method="post" class="form-horizontal">
@Html.TextBoxFor(m => m.user.FirstName, new { @class = "form-control-modal", @id = "fNameEditVal" })
@Html.ValidationMessageFor(m => m.user.FirstName, "")
</form>

编辑用户表单:

<form id="editUserForm" method="post" class="form-horizontal">
@Html.TextBoxFor(m => m.user.FirstName, new { @class = "form-control-modal", @placeholder = "", @id = "fNameAddVal", @required = "required"  })
@Html.ValidationMessageFor(m => m.user.FirstName, "")
</form>

但是当我提交添加用户表单时没有在该字段中写入任何文本,它会正确显示验证消息 "Please enter your first name " 但是当我提交编辑用户表单时它不会显示任何消息。当我将 @Html.TextBoxFor 更改为 @Html.EditorFor 时,消息完美显示。

我建议重组页面,因为您不能为同一个 属性 使用 2 个文本框(正如 Stephen 所建议的)。

我会有以下内容:

  • a Partial View 添加和编辑之间的通用表单字段(TextBoxFor 等)。

  • a View for add(这可以是一个弹出窗口),它是您模型的强类型,包括验证 JS 脚本等,并包括您的表单 Partial View

  • a View for edit(同样,将在弹出窗口中使用)它是您模型的强类型,包括验证 JS 脚本等,并包括您的表单 Partial View .此外,这将有一个 Hidden 字段用于 Id(或对象的任何主键)

...然后,根据您的操作,您可以通过 JS 为弹出窗口调用添加或编辑操作。