Tuesday, 15 April 2014

asp.net - Html.ValidationMessage is empty despite message added to ModelState -



asp.net - Html.ValidationMessage is empty despite message added to ModelState -

i trying utilize modelstate.adderrrormodel , html.validationmessage("account") together, show error message.

however, though can debug model error beingness added on post, cannot see on view when view loaded again.

code run on post form, can see modelstate.addmodelerror beingness called (ex.message have value well):

seek { // code fails in case } grab (exception ex) { logger.error(ex); modelstate.addmodelerror("register",ex.message); } homecoming redirecttoaction("account", accountviewmodel);

my view looks this:

<h3>get free business relationship now</h3> @using (html.beginform("register", "home", formmethod.post, new { @class = "form" })) { // trying test different methods errors... nil works :) @html.validationsummary() @html.validationmessage("register") @html.businesserrormessagebox() <div class="form-group"> <label>email address</label> @html.textboxfor(m => m.registerviewmodel.email, new { @class = "form-control", placeholder = "email", @type = "email" }) @html.validationmessagefor(m => m.registerviewmodel.email) </div> <div class="form-group"> <label>password</label> @html.passwordfor(m => m.registerviewmodel.password, new { @class = "form-control", placeholder = "password" }) @html.validationmessagefor(m => m.registerviewmodel.password) </div> <div class="form-group"> <label>your country (the country live or organization registered in)</label> @html.dropdownlistfor(model => model.registerviewmodel.selectedcountry, model.registerviewmodel.countries, new { @class = "form-control" }) </div> <input type="submit" class="btn btn-primary btn-lg" value="get free business relationship now" /> }

for practical reasons, view called account, , method accepting post, called "register".

but no matter do, there no errors beingness shown in either validationmessage or validationsummary.

any thought doing wrong?

edit:

fyi: there 2 forms in view, if might have influrence.

edit 2:

i can see next html beingness outputted when clicking button goes server. value ex.message, shows nowhere:

<div class="validation-summary-valid" data-valmsg-summary="true"><ul><li style="display:none"></li> </ul></div><span class="field-validation-valid" data-valmsg-for="business" data-valmsg-replace="true"></span><span class="field-validation-valid" data-valmsg-for="register" data-valmsg-replace="true"></span>

the result post action redirect:

return redirecttoaction("account", accountviewmodel);

that means error messages lost, since redirect tell browser send request account action, render fresh register view no errors.

the flow want is:

post logic succeeds, homecoming redirect account, in turn send request post logic fails, homecoming same view errors can displayed

your post method this:

try { //your logic here //everything worked, homecoming redirect homecoming redirecttoaction("account", accountviewmodel); } grab (exception ex) { logger.error(ex); modelstate.addmodelerror("register",ex.message); } //if here, went wrong. homecoming view errors displayed homecoming view("account", accountviewmodel);

hope helps!

asp.net asp.net-mvc validation asp.net-mvc-4 view

No comments:

Post a Comment