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
Post a Comment