Low*_*can 2 c# razor asp.net-mvc-3
我有一个相当简单的剃刀视图,需要用于问卷调查,在问题用完之前反复使用.复选框用于选择答案,问题是当我第一次提交表单时,下一组问题返回我第一次提交的答案将保留在第二页.为简单起见,我将程序简化如下,
模型,
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; }
}
Run Code Online (Sandbox Code Playgroud)
控制器,
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);
}
}
Run Code Online (Sandbox Code Playgroud)
视图,
@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" />
}
Run Code Online (Sandbox Code Playgroud)
在post之后的视图中,DisplayFor和CheckBoxFor列值不同.但它应该是一样的.
Dan*_*ous 10
通过它的声音,ModelState当您返回视图时,您仍然保持其先前的值.尝试清除ModelState您的帖子操作:
ModelState.Clear();
CheckBoxModel model = new CheckBoxModel();
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1102 次 |
| 最近记录: |