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

我建议在页面加载时调用 ajax 一次,它们为每个插入 html。太多的ajax调用可能不起作用,我相信那里有一个限制。

如果这确实有效,您在 "> 中的 id 与 $("#ProductCountry").html(data); 不匹配

此外,为了安全起见,您不能在 MVC 中默认执行 ajax GET,而是使用 [HttpPost] 装饰您的控制器方法并在 ajax 调用中指定它。

于 2012-09-04T09:57:58.777 回答
0

看起来 jQuery 对象中的 id 是错误的。

尝试

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

代替

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