Asp.net mvc 4 MVC4中的复选框回发

Asp.net mvc 4 MVC4中的复选框回发,asp.net-mvc-4,checkbox,postback,Asp.net Mvc 4,Checkbox,Postback,什么是具有回发功能的最佳usagRazor复选框? 例如,我有一门课如下 public class Person { public string Name { get; set; } public string SurName { get; set; } public bool hi { get; set; } } 和一个视图(带有脚本): $(函数(){ $('#hi')。更改(函数(){ $(this).最近的(“表单”).submit(); }); }); @使

什么是具有回发功能的最佳usagRazor复选框? 例如,我有一门课如下

public class Person
{
    public string Name { get; set; }
    public string SurName { get; set; }
    public bool hi { get; set; }
}
和一个视图(带有脚本):


$(函数(){
$('#hi')。更改(函数(){
$(this).最近的(“表单”).submit();
});
});
@使用(Html.BeginForm(FormMethod.Post))
{
@Html.ValidationSummary(true)
人
@LabelFor(model=>model.Name)
@EditorFor(model=>model.Name)
@Html.ValidationMessageFor(model=>model.Name)
@Html.LabelFor(model=>model.姓氏)
@Html.EditorFor(model=>model.nam姓氏)
@Html.ValidationMessageFor(model=>model.nam姓氏)
@CheckBoxFor(model=>model.hi)
}

当我点击“hi”复选框时,我想要回发。我怎么做呢?

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

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

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

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

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

$('#yourCheckBox').change(function () {
  $("#btnInvisibleButton").click();
});
一点jQuery:

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

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