我正在使用MVC框架并且在我的页面上我有几个复选框并且基于复选框用户选中我正在显示带有输入/按钮等的div ...但是当用户发布页面并且页面有任何错误它刷新整个页面,我的选择已经消失,我必须再次选中复选框以显示div。
我的问题是如何坚持选择?如何在这种情况下更新选择,选择是选中哪个复选框并更新控制器中的属性EmployeeChk
我尝试过这样的事情:
.Model class
property bool EmployeeChk {get; set;}
property bool EmployerChk {get;set;}
//查看页面:
<table width="auto">
<tr>
<th>
Employee
</th>
<td>
@Html.CheckBox("Employee")
</td>
</tr>
</table>
<fieldset id="emp" style="@(Model.EmployeeChk ? "" : "display: none")" class="fieldset-auto-width">
<legend>
<legend>
Employee Display
</legend>
@using (Html.BeginForm("EmployeeServer", "EmployeeForm", FormMethod.Post))
{
@Html.ValidationSummary(true)
<div>..... </div>
}
</fieldset>
JQuery的:
<script>
$(document).ready(function() {
$('#Employee').change(function() {
if (this.checked) {
$('#emp').show();
}
});
});
</script>
答案 0 :(得分:0)
您有两个选择:
1:当帖子无效时,将选中的复选框保存在模型(变量)中,然后将该模型发送给View。在页面加载中,检查模型是否已选中复选框(来自上一篇文章),如果是,请更新您的视图。这种方法使用起来既困难又烦人。
2:使用ajax帖子而不是普通帖子。通过ajax发送表单,如果帖子不成功,只需向用户显示错误信息(整个页面保持不变)。如果帖子成功,请重定向到所需的网址。