2

我有一个具有以下功能的 asmx Web 服务:

    [WebMethod]
    public List<Tag> GetTags()
    {
        List<Tag> TagList = new List<Tag>();

        DataTable dt = Helpers.Tags.GetTags();

        foreach (DataRow dr in dt.Rows)
        {
            Tag t = new Tag();
            t.TagName = dr["Tag"].ToString();
            t.TagDescription = dr["Description"].ToString();
            TagList.Add(t);
        }

        return TagList;
    }

这是标签类:

    public class Tag
    {
        public string TagName { get; set; }
        public string TagDescription { get; set; }
    }

GetTags() 方法返回标签对象的对象列表。

我在 jQuery 中有一个 AutoComplete 函数,它接受以下格式的数组:

    var availableTagsCustom = [
        {
            tagName: 'Ruby',
            tagDescription: 'Ruby is an open-source dynamic...'
        },
        {
            tagName: 'Scala',
            tagDescription: 'Scala is a general purpose programming language...'
        },
        {
            tagName: 'Scheme',
            tagDescription: 'Scheme is a functional programming language....'
        }
    ];

如何将收到的“标签对象的对象列表”翻译或转换成这种格式?

谢谢你。

4

1 回答 1

0

首先,您需要[System.Web.Script.Services.ScriptService]在服务类级别设置属性才能获得Json结果。

其次,您需要申请[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]方法。

[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public List<Tag> GetTags()
{
    List<Tag> TagList = new List<Tag>();

    DataTable dt = Helpers.Tags.GetTags();

    foreach (DataRow dr in dt.Rows)
    {
        Tag t = new Tag();
        t.TagName = dr["Tag"].ToString();
        t.TagDescription = dr["Description"].ToString();
        TagList.Add(t);
    }

    return TagList;
}

请求中的第三组Content-type: application/json

这篇文章也可能对“使用 jquery 使用 aspnet json web-services”有所帮助

于 2012-07-14T18:23:32.403 回答