Mvc 4中的复选框回发

时间:2013-04-27 12:36:32

标签: asp.net-mvc-4 checkbox postback

带回发的最佳usag Razor 复选框是什么? 为了考试我有一个课程如下

public class Person
{
    public string Name { get; set; }
    public string SurName { get; set; }
    public bool hi { get; set; }
}

和一个视图(带脚本):

 <script type="text/javascript">
$(function () {
    $('#hi').change(function () {
        $(this).closest("form").submit();
    });
});
</script>
@using (Html.BeginForm(FormMethod.Post))
{
@Html.ValidationSummary(true)

<fieldset>
    <legend>Person</legend>

    <div class="editor-label">
        @Html.LabelFor(model => model.Name)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Name)
        @Html.ValidationMessageFor(model => model.Name)
    </div>

    <div class="editor-label">
        @Html.LabelFor(model => model.SurName)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.SurName)
        @Html.ValidationMessageFor(model => model.SurName)
    </div>
    @Html.CheckBoxFor(model => model.hi)

</fieldset>
}

点击“hi”复选框后我想要回发。我该怎么办?

2 个答案:

答案 0 :(得分:2)

有点jQuery:

$(function(){
    $('#hi').change(function () {
      $(this).closest("form").submit();     
    });
});

答案 1 :(得分:1)

我还没试过。但是在我的脑海中,我会在Html.BeginForm(FormMethod.Post)花括号中添加一个提交按钮,并为它添加一个样式以显示= none。换句话说,它是隐藏的。然后我会使用jquery添加一个复选框事件,例如onValueChange(或者也许onClick可能?,不确定所有事件。)在事件块中,我将模拟按钮点击$('#btnInvisibleButton')。点击();请注意,我在Safari上执行.Clic()时遇到了麻烦(我想通过添加特定于该浏览器的其他代码来解决这个问题,因此您应该在所有浏览器上测试代码。

尝试使用此代码,只需确保提交按钮位于表单标记内:

$('#yourCheckBox').change(function () {
  $("#btnInvisibleButton").click();
});