我使用ASP.NET MVC进行表单验证。我有一页" 用户"它有两个名为" adduser "表格和" edituser " 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>
但是当我提交添加用户的表单而不在该字段中写入任何文本时,它会正确显示验证消息&#34;请输入您的名字&#34;但是当我提交编辑用户表单时,它不会显示任何消息。当我将@Html.TextBoxFor
更改为@Html.EditorFor
时,邮件会完美显示。
答案 0 :(得分:2)
我建议对页面进行重组,因为你不能为同一个属性提供2个文本框(正如Stephen建议的那样)。
我会有以下内容:
Partial View
在添加和修改之间使用公共表单字段(TextBoxFor
等)。
一个View for add
(这可以是一个弹出窗口),它是强有力的模型,包括有效的JS脚本等,并包含您的表单Partial View
一个View for edit
(再次,在弹出窗口中使用),它是强有力的模型,包括validatiin JS脚本等,并包含您的表单Partial View
。此外,这将为Hidden
提供Id
字段(或者您的主键是该对象的任何内容)
...然后,根据您的操作,您可以通过JS调用添加或编辑操作来弹出。