0

问题: controller.cs 中复选框值显示为空。但根据从 jqgrid 中选择的行,它工作得很好。但是,当我选择任何行并更新所有字段时,它将使用修改后的值传递给控制器​​,但只有 IsEnabled 字段为空。

我有名为 IsEnabled 的数据库字段,它具有 Bit 数据类型。

我在 .cshtml 中编写了以下代码

<input type="checkbox" value='Yes' offval='No' name="IsEnabled" />

我正在使用以下代码来绑定数据库中的复选框值

grid.jqGrid('GridToForm', gsr, "#order");

我有保存按钮。当我单击保存时,将执行以下代码

$("#btnSave").click(function () {
                var data = JSON.stringify($('#order').serializeObject());
                var href = '@Url.Action("SaveData", "Users")';
                var ajaxResponse = $.ajax({
                    type: "post",
                    url: href,
                    dataType: 'json',
                    data: data,
                    contentType: "application/json; charset=utf-8",
                    success: function (result) {
                        if (result.Success == true) {
                            alert("Success");
                        }
                        else {
                            alert("Error: " + result.Message);
                        }
                    }
                });

以下用 Controller.cs 编写的代码

在 FormValue 中,它将正确显示除 IsEnabled 之外的所有更新值,它将始终显示为 null。

[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult SaveData(User FormValue)
        {
            string message = "";
            return Content(message);
        }
4

1 回答 1

0

您必须删除此代码(如果使用 jquery ajax)

[AcceptVerbs(HttpVerbs.Post)]

当您使用回发并发送类时,请使用上面的代码

使用 jQuery 发送类使用此代码:试试看:

$.ajax({
                type: "post",
                url: href,
                dataType: 'json',
                data: SON.stringify({ FormValue : { ID : $('#controlIdName').val() , Name : $('#ControlName').val() } }),
                contentType: "application/json; charset=utf-8",
                success: function (result) {
                    if (result.Success == true) {
                        alert("Success");
                    }
                    else {
                        alert("Error: " + result.Message);
                    }
                }
于 2013-01-24T05:57:10.930 回答