2012-04-30 53 views
0

问题:复选框值在controller.cs中显示为空。但根据从jqgrid选择的行,它工作得很好。但是,当我选择任何行并更新所有字段时,它将传递给具有修改值的控制器,但只有IsEnabled字段为空。如何检索控制器中的CheckBox值 - Asp.Net MVC 3和Jquery

我有数据库字段名为IsEnabled有位数据类型。

我已经写了下面的代码在.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,它会显示始终为空。

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

这篇博客可以帮助你的http://博客。 ecofic.com/?p=346 – Rafay

+0

感谢您的快速回复,但它无法解决我的问题,因为我使用的是Model而不是FormCollection ** – imdadhusen

回答

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); 
        } 
       }