c# - ValidationSummary doesn't display errors -


i have page charges credit card. when attempt charge card, i'd redisplay page if error response.

here's controller method:

[httppost] public actionresult charge(creditcardviewmodel viewmodel) {     if (modelstate.isvalid)     {         var request = new authorizationrequest(viewmodel.creditcardnumber,             viewmodel.expirationdate.value.tostring("mmyy"),             viewmodel.amount.value, "");         var gate = new gateway("xxxxxxxxx", "xxxxxxxxx", true);         var response = gate.send(request);          if (!response.approved)         {             modelstate.addmodelerror("", response.message);             return view(viewmodel);         }         else         {             viewmodel.responsemessage = response.message;             return view("results", viewmodel);         }     }     return view(viewmodel);     // validation error, redisplay same view } 

and view:

<% html.enableclientvalidation(); %> <% using (html.beginform("charge", "creditcard", formmethod.post)) { %>      <div class="editor-label"><%: html.labelfor(m => m.creditcardnumber) %></div>     <div class="editor-field">         <%: html.textboxfor(m => m.creditcardnumber)%>         <%: html.validationmessagefor(m => m.creditcardnumber)%>     </div>      <div class="editor-label"><%: html.labelfor(m => m.expirationdate) %></div>     <div class="editor-field">         <%: html.textboxfor(m => m.expirationdate)%>         <%: html.validationmessagefor(m => m.expirationdate)%>     </div>      <div class="editor-label"><%: html.labelfor(m => m.amount) %></div>     <div class="editor-field">         <%: html.textboxfor(m => m.amount)%>         <%: html.validationmessagefor(m => m.amount)%>     </div>      <div class="buttons">         <input type="submit" value="charge amount" />     </div>       <% html.validationsummary(false); %>  <% } %> 

the code works correctly - if error response, view reloaded. problem no error displayed validation summary.

one strange thing if change addmodelerror line to:

modelstate.addmodelerror("creditcardnumber", response.message); 

it show error next creditcardnumber textbox. i'd display error in summary below form, error may not credit card.

add validationmessage output.

<%= html.validationmessage("gatewayerror") %> 

and set error message accordingly

modelstate.addmodelerror("gatewayerror", response.message); 

Comments

Popular posts from this blog

c# - SharpSVN - How to get the previous revision? -

c++ - Is it possible to compile a VST on linux? -

url - Querystring manipulation of email Address in PHP -