我有一個相當直接的剃鬚刀視圖,需要用於調查問卷,這個問題可以反覆使用,直到用完問題。複選框用於選擇答案,問題是當我第一次提交表單時,當下一組問題返回時,我第一次提交的答案將保留在第二頁。爲簡單起見,我已經減少了程序如下,MVC3複選框值不會清除
模型,
public class CheckBoxItemDto
{
public int Id { get; set; }
public bool Selected { get; set; }
}
public class CheckBoxModel
{
public CheckBoxModel()
{
Dtos = new List<CheckBoxItemDto>();
}
public IList<CheckBoxItemDto> Dtos { get; set; }
}
控制器,
public class CheckBoxController : Controller
{
public ViewResult Index()
{
CheckBoxModel model = new CheckBoxModel();
for (int i = 0; i < 5; i++)
{
model.Dtos.Add(new CheckBoxItemDto(){Id = i,Selected = true});
}
return View(model);
}
[HttpPost]
public ViewResult Index(CheckBoxModel mdl)
{
CheckBoxModel model = new CheckBoxModel();
for (int i = 5; i < 10; i++)
{
model.Dtos.Add(new CheckBoxItemDto() { Id = i, Selected = i % 2 == 0 });
}
return View(model);
}
}
視圖,
@model CheckBoxTest.Models.CheckBoxModel
@{
ViewBag.Title = "ViewPage1";
}
<h2>ViewPage1</h2>
@using (Html.BeginForm())
{
for (int i = 0; i < Model.Dtos.Count; i++)
{
@Html.DisplayFor(m => m.Dtos[i].Id)
@Html.DisplayFor(m => m.Dtos[i].Selected)
@Html.CheckBoxFor(m => m.Dtos[i].Selected)
<br/>
}
<input type="submit" value="Index" />
}
在交,DisplayFor和之後的視圖CheckBoxFor列值不同。但它應該是一樣的。
工程就像一個魅力。謝謝。 – 2012-02-09 05:20:46