asp.net mvc - For each loop with submitting form -


model room:

public class room     {         public int id { get; set; }         public string numberroom { get; set; }         public double costpernight { get; set; }         public virtual category category { get; set; } } 

my view model code

public class roommodel     {         public ilist<room> rooms { get; set; }     } 

my razor code:

@model hotel.models.roommodel  @using (html.beginform("comfortlevelview", "category"))         {             (int = 0; < model.rooms.count(); i++)              {                      <table class="simple-little-table" cellspacing='0'>                          <tr>                              <td>@html.displayfor(m => model.rooms[i].numberroom) </td>                              <td>@html.displayfor(m => model.rooms[i].categoryid)</td>                              <td>@html.displayfor(m => model.rooms[i].numberofseats) </td>                              <td>                                  @{ var result = model.rooms[i].costpernight * numbernights; }                                  <p>@viewbag.numbernights ночей</p>:@result                              </td>                              <td>                                  <input type="submit" id="submit" value="booking" />                              </td>                          </tr>                      </table>                  </div>              }         } 

controller:

public actionresult comfortlevelview(int numbernights, int categoryid, int numberpeoples ,datetime selecteddate)         {             iroomservice roomservice = new roomservice();;             return view(roomservice.getroomsbycategory(categoryid, selecteddate, numbernights, numberpeoples));         }  [httppost] public actionresult comfortlevelview(roommodel model) {     // } 

the model item passed dictionary of type 'system.data.entity.infrastructure.dbquery`1[hotel.businessobject.room]', dictionary requires model item of type 'hotel.models.roommodel'.

the error message self explanatory. have in view

@model hotel.models.roommodel 

but pass instance of system.data.entity.infrastructure.dbquery<hotel.businessobject.room> view because of line of code in controller

return view(roomservice.getroomsbycategory(categoryid, selecteddate, numbernights, numberpeoples)); 

you need pass instance of roommodel instead of system.data.entity.infrastructure.dbquery<hotel.businessobject.room>. suggest changing controller code below

public actionresult comfortlevelview(int numbernights, int categoryid, int numberpeoples, datetime selecteddate) {     iroomservice roomservice = new roomservice();     var rooms = roomservice.getroomsbycategory(categoryid, selecteddate, numbernights, numberpeoples);      roommodel model = new roommodel();     model.rooms = rooms.tolist();      return view(model); } 

Comments

Popular posts from this blog

Email notification in google apps script -

c++ - Difference between pre and post decrement in recursive function argument -

javascript - IE11 incompatibility with jQuery's 'readonly'? -