javascript中创建对象,并序列化为json,通过$.ajax的提交json数据到后台方法,取值为null的问题...

使用mvc开发页面,在view中需要提交数据到后台。使用的办法是在javascript中建立一个和参数类相同的类,在javascript赋值,然后序列化为json,通过$.ajax的提交json数据到后台。实际编程中发现参数取值一直为null。

view中的代码:

 1 $('#linkSave').click( function () {
 2                      var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
 3                      var nodes = treeObj.getCheckedNodes( true);
 4                      var datas = [];
 5                     $.each(nodes,  function (k, v) {
 6                         datas.push(v.tid);
 7                     });
 8 
 9                      var tdata = {
10                         "RowPrivilegeRelatedData": {
11                             "RowPrivilegeID": $("#RowPrivilegeID").val(),
12                             "RelatedIDs": datas
13                         }
14                     }
15 
16                     $.ajax({
17                         type: "POST",
18                         url: '@Url.Action("SaveRowPrivilegeByDeptRelatedData", "RowPrivilege")',
19                         dataType: 'json',
20                         contentType: 'application/json; charset=utf-8',
21                         data: JSON.stringify(tdata),
22                         success:  function (msg) {
23                              if (msg.errmsg == "") {
24                                 $.messager.alert("处理结果", "设置成功!", "Info",  function () { window.location.reload(); });
25                             }
26                              else {
27                                 $.messager.alert("处理结果", msg.errmsg, "error");
28                             }
29                         }
30                     });
31                 });

 controller中的代码:

 1          public ActionResult SaveRowPrivilegeByDeptRelatedData(RowPrivilegeRelatedData data)
 2         {
 3              string errorMsg =  string.Empty;
 4              try
 5             {
 6                  new RowPrivilegeHelper().SaveRowPrivilegeRelatedData(data.RowPrivilegeID,  " erp_organization_rowprivilege ", data.RelatedIDs);
 7             }
 8              catch (Exception ex)
 9             {
10                 errorMsg = ex.Message;
11             }
12              return Json( new { errmsg = errorMsg });
13         }

 后来发现,如果参数名命名为rowPrivilegeRelatedData,即可获得前台传过来的数据。

猜测可能是要求参数名需要和前台拼成的json串中的类名相同(可以忽略大小写)才能传值成功。

 

转载于:https://www.cnblogs.com/thomaswang/archive/2012/04/25/2469999.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值