1

Javascriptを使用して部分ビューを動的にDIVにロードしています:

    $.ajax({
        url: '@Url.Action("Details","User")',
        data: { id: userId},
        type: 'post',
        success: function (data) {
        $("#user-details").show().html(data);})

表示されたら、ユーザーが選択できるようにいくつかのドロップダウンメニューを入力します。「UserCategories」のリストを作成したいとしましょう

したがって、上記のajax呼び出しが成功すると、次のようになります。

                $.getJSON('@Url.Action("GetUserCategories","User")',function(data) {
                $.each(data, function (key, item) {

                    $("#userCategories-list").append(
                        $("<option></option>").text(item.Name).val(item.Id)
                    );
                });
            });

UserCategoriesリストにデータが入力されていません。

UserCategoriesドロップダウンメニューを含むUserDetailsソースHTMLが動的にレンダリングされ、ページに表示されないためだと思いますか?

ajax呼び出しで表示される「userCategories-list」ドロップダウンメニューにアクセスしてデータを入力するにはどうすればよいですか。また、ページソース/Firebugを表示しても表示されないHTML/コントロール名はどれですか。

前もって感謝します。

4

1 に答える 1

0

確かなことは言えませんが、リスト作成関数が呼び出されたとき、部分ビューはブラウザーのDOMの一部ではないと思います。実際、レンダリングのためにパーシャルをブラウザにロードするコードはありません。

FirebugまたはChromeデバッガーを使用してデバッグを試みましたか?関数にブレークポイントを設定して、実際に何が起こっているかを確認できます。

 $.ajax({
        url: '@Url.Action("Details","User")',
        data: { id: userId},
        type: 'post',
        success: function (data) { 
            $("#partialContainer").html(data);
            $.getJSON('@Url.Action("GetUserCategories","User")',function(listData) {
                $.each(listData, function (key, item) {
                    $("#userCategories-list").append(
                        $("<option></option>").text(item.Name).val(item.Id)
                    );
                }); //each
            )); //getJson
        } //success anon function
  }); //$.ajax
于 2012-05-16T21:52:55.397 に答える