asp.net 2.0 asmx WebService在JSON Response中排除__type

时间:2012-05-31 20:24:27

标签: asp.net json web-services asp.net-ajax

我正在尝试确定如何从asmx WebService中排除我的JSON响应中的__type

我返回的类构造如下。

public class MyClassName
{
    private string _item1 = string.Empty;
    private string _item2 = string.Empty;

    public string item1 = { get { return _item1; } set { _item1 = value; } }
    public string item2 = { get { return _item2; } set { _item2 = value; } }
}

public class MyClassName_List : List<MyClassName>
{
    public MyClassName_List() {}
}

然后我有一个数据访问层和业务逻辑层,它返回一个填充的MyClassName_List实例。我的WebMethod设置如下。

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class MyClassName_WebService : System.Web.Services.WebService
{
    [WebMethod]
    public MyClassName_List GetList()
    {
        return MyClassName_List_BusinessLogicLayer.GetList();
    }
}

JSON对象返回的结构如下。

[
    {
    item1: "item1-1 text",
    item2: "item1-2 text",
    __type: "NamespaceUsed.MyClassName"
    },
    {
    item1: "item2-1 text",
    item2: "item2-2 text",
    __type: "NamespaceUsed.MyClassName"
    },
]

我只想按如下方式返回JSON对象。

[
    {
    item1: "item1-1 text",
    item2: "item1-2 text"
    },
    {
    item1: "item2-1 text",
    item2: "item2-2 text"
    }
]

我已尝试过here的建议,但似乎无法正确实施。对此有任何帮助非常感谢!

1 个答案:

答案 0 :(得分:8)

这样做的方法如下。

public class MyClassName
{
    private string _item1 = string.Empty;
    private string _item2 = string.Empty;

    public string item1 = { get { return _item1; } set { _item1 = value; } }
    public string item2 = { get { return _item2; } set { _item2 = value; } }

    protected internal MyClassName() { } //add a protected internal constructor to remove the returned __type attribute in the JSON response
}

public class MyClassName_List : List<MyClassName>
{
    public MyClassName_List() {}
}

我希望这也有助于其他人!