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リクエストの3 番目のセット。

この記事も役立つかもしれません」「jquery を使用して aspnet json Web サービスを使用する

于 2012-07-14T18:23:32.403 に答える