asp.net mvc - If(ModelState.IsValid==false) return View(); or View(model);? -


when validation fails, 1 should return? view(); or view(model); ?

i notice both work. confusing.

edit:

public class moviescontroller : controller {     moviesentities db = new moviesentities();      //     // get: /movies/      public actionresult index()     {         var movies = m in db.movies                      select m;         return view(movies.tolist());     }      public actionresult create()     {         return view();     }      [httppost]     public actionresult create(movie movie)     {         if (modelstate.isvalid)         {             db.addtomovies(movie);             db.savechanges();              return redirecttoaction("index");         }         else             return view();//view(movie);     } } 

my create.aspx:

<% using (html.beginform()) {%>     <%: html.validationsummary(true) %>      <fieldset>         <legend>fields</legend>           <div class="editor-label">             <%: html.labelfor(model => model.title) %>         </div>         <div class="editor-field">             <%: html.textboxfor(model => model.title) %>             <%: html.validationmessagefor(model => model.title) %>         </div>          <div class="editor-label">             <%: html.labelfor(model => model.releasedate) %>         </div>         <div class="editor-field">             <%: html.textboxfor(model => model.releasedate) %>             <%: html.validationmessagefor(model => model.releasedate) %>         </div>          <div class="editor-label">             <%: html.labelfor(model => model.genre) %>         </div>         <div class="editor-field">             <%: html.textboxfor(model => model.genre) %>             <%: html.validationmessagefor(model => model.genre) %>         </div>          <div class="editor-label">             <%: html.labelfor(model => model.price) %>         </div>         <div class="editor-field">             <%: html.textboxfor(model => model.price) %>             <%: html.validationmessagefor(model => model.price) %>         </div>          <p>             <input type="submit" value="create" />         </p>     </fieldset>  <% } %>  <div>     <%: html.actionlink("back list", "index") %> </div> 

if view returning typed , uses model better pass model. if return view() , in view try access model nullreferenceexception.

the following common pattern:

public class homecontroller: controller {     public actionresult index()     {         var model = fetchmodelfromrepo();         return view(model);     }      [httppost]     public actionresult index(someviewmodel model)     {         if (!modelstate.isvalid)         {             return view(model);         }                  // todo: update db         return redirecttoaction("index");     } } 

Comments

Popular posts from this blog

c++ - Convert big endian to little endian when reading from a binary file -

C#: Application without a window or taskbar item (background app) that can still use Console.WriteLine() -

unicode - Are email addresses allowed to contain non-alphanumeric characters? -