CheckBox在PartialView AJAX PostBack中没有绑定

时间:2016-11-30 13:25:45

标签: jquery checkbox ajaxform ajax.beginform checkboxfor

我有一个带有字段的表单和一个模态弹出窗口上的Ajax表单中的复选框,当用户在文本框中输入数据并按下提交时,将发布值并关闭模态。但是,如果用户在文本框中输入一个值,然后选中该复选框,表单将提交,如果选中该复选框,则视图将返回此时的模态我需要保留表单,以便用户可以提交另一个条目。问题是文本框保持其状态,这就是我想要的状态,复选框也是如此,但是,即使仍然选中了复选框,复选框的基础值也会切换回假...  有点难过。

@using (Ajax.BeginForm("SaveValues", "ControllerName", new AjaxOptions()
{   HttpMethod = "Post",
OnComplete = "ChkForCheckBox();"
}))
{ 
@Html.TextBoxFor(x => x.DDate)
@Html.CheckBoxFor(x => x.Dupe)
<button type="submit" >Save</button>
}

并在控制器中。

public void SaveValues( string DDate, bool Dupe)
{
   var rslt = repo.Post(DDate);
}

JS。

 function ChkForCheckBox(){
    var rslt = $('#Dupe').prop('checked');
    if(!rslt){
     //Close Modal
}
}

但是在Ajax Post之后仍然检查了CheckBox但是JS Script Check显示为false?如果我注释掉CloseModal并查看代码,则Value设置为False?但如果我再次发布它真的来了吗? 再次验证ChkForCheckBox()并显示错误.....
我错过了一些东西。

1 个答案:

答案 0 :(得分:0)

您的检查显示为false,因为CheckBoxFor() HTML帮助程序也会生成隐藏的输入。即使没有选中复选框,仍然会发布该值。您的检查必须只是找到隐藏的输入值而不是复选框的值。