asp.net-mvcvalidationdata-annotationsvalidationmessage

Validation message doesn't appear in ASP.NET MVC


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.


Solution

  • 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:

    ...then, depending on what you are doing you would call the add or edit action via JS for your pop up.