【问题标题】:Asp.net MVC Checkbox Event HTTPPOST ServerSideAsp.net MVC 复选框事件 HTTPPOST 服务器端
【发布时间】:2017-10-07 06:46:33
【问题描述】:
net mvc5 表单和使用复选框。
我的条件是我需要在选中复选框(true)后立即调用 HTTPPOST 操作
在选中复选框后,应立即调用类似于 HTTPPOST 的操作。
我还需要将 Model 传递给 HTTP Post。
您能告诉我完成这项工作所需的方法是什么吗?
【问题讨论】:
-
使用剃须刀你可以使用@Html.CheckBox("chkName",false, new {onclick="this.form.submit();"}) - 见here
标签:
c#
asp.net-mvc
checkbox
【解决方案1】:
我建议使用 jquery 来实现这一点。假设您的复选框嵌套在表单中,您可以使用:
$(function () {
$('#CheckBoxName').change(function () {
$(this).closest("form")[0].submit();
});
});
这将触发回发,调用适当的 HttpPost 方法并将模型作为参数发送。
【解决方案2】:
您应该使用 javascript 对复选框的更改做出反应,然后通过 ajax 发布。
这是一个例子:
$('#checkbox').change(function(){
if (this.checked){
var jsonModel = '@Html.Raw(Json.Encode(Model))';
$.ajax({
type: 'post',
url: '@Url.Action("UrlOfPostAction")',
data: { Model: jsonModel},
dataType: 'json',
success: function (res) {
//Do something
}
//manage errors
});
}
});