如何从列表中删除$ Id属性?

时间:2017-02-15 10:03:22

标签: c# angularjs asp.net-mvc

我的后端代码(MVC)中有一个列表,当我使用api访问数据时,在我的列表中,我可以看到附加了名为$ id的属性。我不希望这发生。我该怎么办?

这是我的清单:

var IList<sponsor> result=getSponser(id); 
return this.ok(result)

当使用控制器中的动作方法从api(angualrjs)访问它时。 输出是:

{
"$id":"2",
"Sponsor":
    {
      "$id":"3",
      "Id":3,
      "Name":"testing sponsor",
      "LogoPath":null,
      "Address":null,
      "ContactNumber":null,
      "Country":null
    },
"User":
    {
      "$id":"4",
      "Id":7031,
      "UserName":"priteshabc",
      "IsActive":true,
      "CreatedDate":"0001-01-01T00:00:00",
      "LastLoginDate":"0001-01-01T00:00:00",
      "RoleId":2,
      "Password":null,
      "IsPasswordChanged":false
    },
"Id":1026,
"UserName":null,
"FullName":"asdfasdf",
"FirstName":null,
"LastName":null,
"Email":"pretsh@aksdf.asdff",
"Countries":
    [
        {"$id":"1","Id":1,"Name":"Afghanistan","Code":"AF"},
        {"$id":"4","Id":4,"Name":"American Samoa","Code":"AS"},
        {"$id":"7","Id":7,"Name":"Anguilla","Code":"AI"},
        {"$id":"9","Id":9,"Name":"Antigua and Barbuda","Code":"AG"},
        {"$id":"10","Id":10,"Name":"Argentina","Code":"AR"}
    ],
 "Country":null,
 "PhoneNumber":"1354535151581",
 "IsActive":null,
 "Address":"asdfasdf"

}

您可以看到赞助商,用户和国家/地区对象都有一个名为$ id的属性。我需要从C#级别本身删除它。怎么办?

2 个答案:

答案 0 :(得分:0)

好的,我得到了答案。以前我在做什么

      return this.ok(result)   //=>this will cause generating $id property automatically in result of the get method(api side)

当我在发送的数据中使用$ id时,我在post方法中的模型状态验证中遇到了问题(只有当不同对象有相同的$ id时)

所以我用

替换了它
            return json(result)

答案 1 :(得分:0)

尝试从服务器返回serializeObject,然后在jS中使用

var data = JSON.parse(res);