0

私は今2時間以上インターネットを探していて、asp.netページのロード時にサーバーサイドコードからjQuery変数を入力する方法の簡単な例を見つけようとしていました。

私がこれまでに持っているもの:

このjqueryコードを呼び出すボタンがあります:

    function GetListOfQuestions() {
        $.ajax({
            type: "POST",
            url: 'UserProfile.aspx/getQuestions',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            error: OnAjaxError,
            success: AjaxSucceeded
        });
        //$.getJSON('UserProfile.aspx/getQuestions', {}, function (data) {
        //    alert(data);
        //});
    }

    function AjaxSucceeded(result) {

        alert(result);

    }

GetListOfQuestionsはサーバーサイドを呼び出します:

    [WebMethod]
    public static List<Question> getQuestions(){

        var userGuid = (Guid)System.Web.Security.Membership.GetUser().ProviderUserKey;
        IEnumerable<Question> list = Question.getQuestionsForUser(userGuid).Select(x => new Question
        {
            Uid = x.Uid,
            Content = x.Content
        });

        return list.ToList();
    }

結果は、アラートを出すとオブジェクトを返すため、何らかのデータが含まれている必要がありますが、クライアント側でデータを再度取得する方法の例は見つかりません。

私が今していることがまったく正しいかどうかはわかりません(私はjQueryを初めて使用します)。では、どうすれば結果変数からデータを再度取得できますか?

4

2 に答える 2

3

より良い方法があるかもしれませんが、これは私が知っている1つの方法です:

[WebMethod]
    public static string getQuestions(){

        var userGuid = (Guid)System.Web.Security.Membership.GetUser().ProviderUserKey;
        IEnumerable<Question> list = Question.getQuestionsForUser(userGuid).Select(x => new Question
        {
            Uid = x.Uid,
            Content = x.Content
        });

        return new JavaScriptSerializer().Serialize(list.ToList())
    }

jQueryメソッドでは、次のことができます

result = $.parseJSON(data) ;

結果を反復処理する方法を確認するためにを実行しますconsole.log(result)。これは単なるforループである必要があります。

于 2012-09-24T18:34:46.837 に答える
0

ページに非表示のフィールドを配置し、そこに変数値を設定し、後でjsから非表示の値を読み取ります。

もう1つのオプションは、ScriptManager.RegisterStart UpScriptを使用して、変数をjsとしてページに直接書き込むことです。

于 2012-09-24T18:37:23.200 に答える