У меня довольно простой вид бритвы, который необходимо использовать для вопросника, который используется повторно, пока не закончится вопрос. Флажок используется для выбора ответов, проблема в том, что когда я впервые отправлю форму, когда следующий набор вопросов вернул ответы, которые я отправляю в первый раз, они сохраняются на второй странице. Для простоты я сократил программу следующим образом,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);
}
}
View,
@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 различны. Но это должно быть одинаково.
Работает как очарование. Спасибо. –