虽然它似乎也已在前面讨论过,但我找不到解决方案 - :
我有一个这样的VM - :
public class RoomsVm
{
public RoomsVm()
{
Rooms.Add(new Room()
{
IsVip = true,Id = "1"
}
);
Rooms.Add(new Room()
{
IsVip = false,
Id = "2"
}
);
}
public List<Room> Rooms=new List<Room>();
}
public class Room
{
public bool IsVip { get; set; }
public string Id { get; set; }
}
我的控制器有2个简单的动作 - 1-代表获取,2代表发布 - :
public ActionResult IndexView2()
{
var roomVM = new RoomsVm();
return View(roomVM);
}
[HttpPost]
public ActionResult IndexView2(RoomsVm roomsVm)
{
return View(roomsVm);
}
在我看来 - 我只是用这样的复选框显示我的房间 - :
@model MVCApplication.Models.RoomsVm
<h2>IndexView2</h2>
@using (Html.BeginForm())
{
for (int i = 0; i < Model.Rooms.Count(); i++)
{
@Html.CheckBoxFor(modelItem=>modelItem.Rooms[i].IsVip,new{value=Model.Rooms[i].Id})
}
<input type="submit" value="Submit"/>
}
问题 - 当我点击提交按钮时,我没有在Post动作的输入值中获得房间复选框的更新值。
我做错了什么?
答案 0 :(得分:1)
您的Rooms
财产上没有访问者
public class RoomsVm
{
public RoomsVm()
{
Rooms = new List<Room>(); // Initialize rooms
Rooms.Add(new Room() {.... //Add rooms
}
public List<Room> Rooms { get; set; } // Add get/set
}