zoukankan      html  css  js  c++  java
  • 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串中的类名相同(可以忽略大小写)才能传值成功。

  • 相关阅读:
    搜狗输入法用户体验
    Day06
    Day05
    Spark-RDD操作(26个常用函数附实例)
    软件工程培训第五天(hive进阶)
    hive窗口函数
    hive操作(行转列,列转行)
    Hive中使用case then分情况求和
    hive分组排序(rank函数+partiton实现)
    软件工程培训第四天总结,hive的学习
  • 原文地址:https://www.cnblogs.com/thomaswang/p/2469999.html
Copyright © 2011-2022 走看看