Asp.net mvc 如何在MVC4中保留复选框选中状态

Asp.net mvc 如何在MVC4中保留复选框选中状态,asp.net-mvc,asp.net-mvc-4,checkbox,Asp.net Mvc,Asp.net Mvc 4,Checkbox,我正在开发MVC4应用程序,我有分页功能。我在页面中有一个复选框。我正在使用分页,因此我希望保留所有字段的值。我使用Models和viewbag来保留textbox和dropdownlist的值。我发现复选框难以保留该值 例如,dropdownbox如下所示: @Html.DropDownListFor(x => x.doc_typeid, Model.doctype_name, "Select", new { @class = "form-control" }) @Htm

我正在开发MVC4应用程序,我有分页功能。我在页面中有一个复选框。我正在使用分页,因此我希望保留所有字段的值。我使用Models和viewbag来保留textbox和dropdownlist的值。我发现复选框难以保留该值

例如,dropdownbox如下所示:

@Html.DropDownListFor(x => x.doc_typeid, Model.doctype_name, "Select", new { @class = "form-control" })
       @Html.TextBoxFor(x => x.employeeID, Model.employeeID, new { @id = "employeeID", @placeholder = "Employee ID", @class = "form-control text-input", @maxlength = 20 })
例如,Textbox如下所示:

@Html.DropDownListFor(x => x.doc_typeid, Model.doctype_name, "Select", new { @class = "form-control" })
       @Html.TextBoxFor(x => x.employeeID, Model.employeeID, new { @id = "employeeID", @placeholder = "Employee ID", @class = "form-control text-input", @maxlength = 20 })
这是我的复选框

 @for (int i = 0; i < Model.EmploymentType.Count; i++)
 {
         @Html.CheckBoxFor(m => m.EmploymentType[i].isChecked, new { id = "employmentType_" + i })
         @Html.HiddenFor(m => m.EmploymentType[i].checkBoxName)
         @Html.DisplayFor(m => m.EmploymentType[i].checkBoxName)
 }
@for(int i=0;im.EmploymentType[i].isChecked,新的{id=“EmploymentType_u”+i})
@Html.HiddenFor(m=>m.EmploymentType[i].checkBoxName)
@DisplayFor(m=>m.EmploymentType[i].checkBoxName)
}

在这里我不知道如何保留复选框的选中值?任何帮助都将不胜感激

当请求返回服务器时,复选框本身不会保留。保存它的主要方法是始终确保复选框的形式可以回发到服务器。当表单发回时,从
Model.EmploymentType
集合中获取它们


你只需要小心,所有执行动作的东西实际上都是一篇文章,而不是一篇文章。

这就是这个模型的目的

假设您有一个视图,其中包含一个表单、一个下拉列表和一个提交表单的按钮。 当您按下按钮时,会将模型对象返回到控制器。现在您需要重新显示表单,因此此时您需要将现有模型传递回视图

因此,在回发之前,您的操作可以执行以下操作:

Return View("someView");
回发后,您想将其更改为

Return View("someView", model);
模型是您在第一次提交后返回给控制器的

这有意义吗

不要过分依赖ViewBag、Session或其他内容。这个模型能很好地为你覆盖所有这些