【问题标题】:How to map javascript object to mvc model?如何将javascript对象映射到mvc模型?
【发布时间】:2015-12-21 07:54:16
【问题描述】:

我有一个像下面这样的 js 对象:

$scope.docPropIdentityModel = {
        Owner: {OwnerID:"", OwnerName: ""},
        };

我想通过 ajax 调用将此对象发送到我的 mvc 控制器。假设控制器是这样的:

controller(test_class model)
{
}

模型是这样的:

test_class
{
  public string Owner{get;set;};
}    

我的控制器中为 null。如何将 js 对象值映射到我的模型?

【问题讨论】:

    标签: javascript jquery angularjs json asp.net-mvc-3


    【解决方案1】:

    你的 json 对象包含两个不同的类。 拥有第二个对象(所有者)的顶级类。 你应该有两个类:

    public class TestClass {
        public Owner owner;
    
    }
    public class Owner {
        public String ownerId;
        public String ownerName;
    }
    

    具有正确命名约定的 JSON 对象:

    {
    "owner":{"ownerId":"yourID", "ownerName":"yourOwnerName"}
    }
    

    【讨论】:

    • 有没有办法将 OwnerID 映射到我的 TestClass 模型?
    • 你的 TestClass 应该像 'public class TestClass { public String ownerId;}' 你的 JSON 对象像 '{"ownerId":"yourID"}'。但随后您会丢失有关所有者姓名的信息。
    【解决方案2】:

    如果您使用的是 AngularJS,请使用 $http.get$http.post

    控制器:

    [HttpPost]
    public ReturnType Foo(YourModelClass modelClass)
    {
    }
    

    JavaScript:

    $http({
      url: url,
      method: 'POST',                    
      data: $scope.docPropIdentityModel                   
     })
       .success(function (data) {
            alert("OK");
       })
       .error(function (data) {
            alert("error");
       });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-27
      • 1970-01-01
      • 2015-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      相关资源
      最近更新 更多