私は、質問がなくなるまで繰り返し使用されるアンケートに使用する必要がある、かなり簡単な剃刀のビューを持っています。チェックボックスは選択された回答に使用されますが、問題は次回の質問が返されたときに最初にフォームを送信したときです。最初に送信した回答が2ページ目に保持されます。次のように簡単にするために、私は、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列の値が異なります。しかし、それは同じでなければなりません。
魅力的な作品です。ありがとうございました。 –