I am using ASP.NET MVC for form validation. I have one page of "Users" which have two forms named as "adduser" form and "edituser" form.I'm trying to apply same validation message against m.user.firstName
property for both forms.
Add user form:
<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>
Edit user 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>
But when I submit the form of add user without writing any text in that field it properly shows the validation message "Please enter your first name " but when I submit the edit user form it will not show any message. When I change @Html.TextBoxFor
to @Html.EditorFor
, the message is showing up perfectly.
I would suggest a restructure of the page(s) as you can't have 2 text boxes for the same property (as Stephen suggested).
I would have the following:
a Partial View
with the common form fields (TextBoxFor
etc) between add and edit.
a View for add
(this can be a pop up) which is strongly typed to your model, includes the validatiin JS scripts etc and includes your form Partial View
a View for edit
(again, to be used in the pop up) which is strongly typed to your model, includes the validatiin JS scripts etc and includes your form Partial View
. In addition, this would have a Hidden
field for the Id
(or whatever your primary key is for the object)
...then, depending on what you are doing you would call the add or edit action via JS for your pop up.