对于提交形式
问题描述:
模型间每个环:对于提交形式
public class Room
{
public int Id { get; set; }
public string NumberRoom { get; set; }
public double CostPerNight { get; set; }
public virtual Category Category { get; set; }
}
我的视图模型代码
public class RoomModel
{
public IList<Room> Rooms { get; set; }
}
我的剃刀代码:
@model hotel.Models.RoomModel
@using (Html.BeginForm("ComfortLevelView", "Category"))
{
for (int i = 0; i < 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>
}
}
控制器:
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)
{
//
}
传入字典的模型项目类型为'System.Data.Entity.Infrastructure.DbQuery`1 [Hotel.BusinessObject.Room]',但此字典需要一个类型为'hotel.Models.RoomModel'的模型项目。
答
错误消息是不言自明的。你在你看来
@model hotel.Models.RoomModel
有这一点,但你传递的System.Data.Entity.Infrastructure.DbQuery<Hotel.BusinessObject.Room>
一个实例到你的观点,因为在你的控制器这行代码的
return View(roomService.GetRoomsByCategory(CategoryId, SelectedDate, NumberNights, NumberPeoples));
你需要传递的RoomModel
的实例,而不是System.Data.Entity.Infrastructure.DbQuery<Hotel.BusinessObject.Room>
。我会建议将您的控制器代码更改为以下版本
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);
}
您还没有解决您最后一个问题中的任何多个错误!你的查询生成一个'Room'对象的集合,而不是'RoomModel'对象! –
那也不是for-each循环,它只是一个for循环 –
最后一个问题有很多帮助,这是毫无意义的! – nik0lias