我有一个显示所有可用酒店房间的表格,每个房间都有一个按钮,如果点击它就会执行HttpPost,我在BookingViewModel中创建了一个名为' RoomID'的房产。我想将item.RoomID分配给Model.RoomID,以便我可以在我的控制器中使用它来获取所选房间的ID,但我不知道如何实现这一点。
[HttpPost]
public ActionResult ChooseRoom(BookingViewModel vm)
{
BookingViewModel bookingObj = GetBooking();
bookingObj.SelectedRoom = Repository.GetRoomByID(vm.RoomID);
return View("reservation", bookingObj);
}
{{1}}
感谢您的时间!
答案 0 :(得分:2)
更新您的开始表单,如下所示
@using (Html.BeginForm("chooseroom", "booking", FormMethod.Post))
{
<input type="hidden" name="RoomId" value="@item.RoomID" />
<input class="button2" type="submit" value="Select Room" />
}
只需提供与ViewModel属性同名的输入标记。
答案 1 :(得分:1)
你可以在foreach循环中添加输入,它应该在form里面。像这样<input name="Model.AvailableRooms[index].RoomID" value="Id Here"/>
或者如果你想选择一个房间,你应该使用ajax和post id。
如果我没错,那么你的表单是循环的,所以你可以用id添加隐藏的输入
@Html.HiddenFor(c => c.AvailableRooms[index].RoomID)