Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery jTable在使用嵌套JSON对象时会出现添加和编辑问题_Jquery_Object_Null_Nested_Jquery Jtable - Fatal编程技术网

jQuery jTable在使用嵌套JSON对象时会出现添加和编辑问题

jQuery jTable在使用嵌套JSON对象时会出现添加和编辑问题,jquery,object,null,nested,jquery-jtable,Jquery,Object,Null,Nested,Jquery Jtable,我的MVC应用程序中有一个jQuery jTable,它绑定到一个对象列表,其中一个属性是嵌套对象。我能够正确显示所有值,但当尝试执行添加或更新时,嵌套对象以null形式传递到服务器 例如,考虑下面的示例代码: 基本对象: 嵌套地址对象: 部分jTable定义: 控制器更新操作: } 在jTable中,AddressLine1将正常显示。但是,当运行添加或更新控制器操作时,User.Address对象将作为null传递,因此为地址输入的任何值都不可用于添加或更新。我错过了什么 您已经使用disp

我的MVC应用程序中有一个jQuery jTable,它绑定到一个对象列表,其中一个属性是嵌套对象。我能够正确显示所有值,但当尝试执行添加或更新时,嵌套对象以null形式传递到服务器

例如,考虑下面的示例代码:

基本对象:

嵌套地址对象:

部分jTable定义:

控制器更新操作:

}

在jTable中,AddressLine1将正常显示。但是,当运行添加或更新控制器操作时,User.Address对象将作为null传递,因此为地址输入的任何值都不可用于添加或更新。我错过了什么

您已经使用display属性自己显示了AddressLine1变量。创建新记录时,AddressLine1将是表单正文中的另一个类似于ID属性的参数。您可以从chrome中的开发者工具检查请求主体

您可以尝试使用并自行处理post请求为属性分配函数

例如:

createAction:functionpostData,jtParams{ 返回$.Deferredfunction$dfd{ $.ajax{ url:“/create/api/url/”, 键入:“POST”, 数据类型:“json”, data:prepareJSONpostData,//用于将输入转换为JSON格式的函数 成功:functiondata{ $dfd.resolve{ 结果:好,, 记录:数据说明, TotalRecordCount:0 }; }, 错误:函数{ console.logERROR。。。。; $dfd.reject; } }; }; }
public class User
{
    public int ID { get; set; }
    public Address Address { get; set; }
}
public class Address
{
    public string AddressLine1 { get; set; }
    public string AddressLine2 { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public string Zip { get; set; }
}
$('#UserList').jtable({
        title: "Users",
        actions: {
            listAction: '/Admin/LoadUsers',
            createAction: '/Admin/CreateUser',
            updateAction: '/Admin/UpdateUser',
            deleteAction: '/Admin/DeleteUser'
        },
        fields: {
            ID: {
                key: true,
                list: false
            },
            AddressLine1: {
                title: 'Group',
                display: function(data){
                    return data.record.Address.AddressLine1;
                },
            }
        }
    });
public JsonResult UpdateUser(User user)
{
   try
   {
       // Code to update user here...
       return Json(new { Result = "OK" });
   }
   catch (Exception ex)
   {
      return Json(new { Result = "ERROR", Message = ex.Message });
   }