0

こんにちは、タブを表示しようとしており、タブのデータをフェッチしようとしています。以下のコードでタブを表示できましたが、コントローラーで GetManufacturerProductsForCountry アクションが呼び出されていません。コードが磨耗している場合は修正してください。

" %>
<%@ Import Namespace="EmsAdmin.Models" %>

    <% foreach (var country in ((Country[])ViewData["countries"]))
       { %>
    <li><a href="#">
        <%: country.Name %></a> </li>
    <% } %>
</ul>
<div class="panes">

    <% foreach (var country in ((Country[])ViewData["countries"]))
       { %>
    <div class="pane">
        <div style="clear: both;">
            &nbsp;</div>
    </div>
    <div id="ProductCountry<%:country.Id %>">
        <script type="text/javascript">
            var taskInput = "";
            $.ajax({
                url: "/Manufacturers/GetManufacturerProductsForCountry/"+<%:Model.Id %>+<%:country.Id %>,
                type: 'get',
              success: function (data) {
                    taskInput = data;
                    $("#ProductCountry").html(data);

                }
            });
        </script>
    </div>
    <% } %>
</div>

4

2 に答える 2

0

そのIDがjQueryオブジェクトで間違っているようです。

で試してみてください

       $("[id*=" + "ProductCountry" + "]").html(data);

それ以外の

         $("#ProductCountry").html(data);
于 2012-09-04T10:30:52.673 に答える
0

ページの読み込み時に一度 ajax を呼び出して、それぞれに html を挿入することをお勧めします。あまりにも多くの ajax 呼び出しが機能しない可能性があります。そこには限界があると思います。

これが機能した場合、"> の ID は $("#ProductCountry").html(data); と一致しません。

また、セキュリティのために、MVC でデフォルトで ajax GET を実行することはできません。代わりに、コントローラー メソッドを [HttpPost] で装飾し、ajax 呼び出しでそれを指定します。

于 2012-09-04T09:57:58.777 に答える