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

  • 相关阅读:
    Magic-Club第六天
    .net工具类——文件操作
    .net工具类——HTML处理
    .net工具类——随机生成
    .net工具类——删除最后结尾的一个逗号
    .net工具类——分割字符串
    .net工具类——对象转换处理
    .net扩展方法——其他(科学计数法、ToDictionary 去重、List<Guid>转为List<Guid?>)
    .net扩展方法——类型转换
    『Linux学习笔记』7. 管道和过滤器 -- pipe
  • 原文地址:https://www.cnblogs.com/thomaswang/p/2469999.html
Copyright © 2020-2023  润新知