如何反复渲染局部(仅使用RenderAction)

时间:2011-12-22 08:24:53

标签: asp.net-mvc html-helper html.actionlink

如何一次又一次地渲染部分(Html.RenderPartial())。

或如何使用html.Action("","")一次又一次地渲染部分(通过调用返回部分视图的动作)。

2 个答案:

答案 0 :(得分:1)

根据我的理解,您需要在页面上多次显示ParialView。如果这是你的问题那么你有一些东西,比如一个集合,告诉你有多少时间想要在页面上渲染部分视图。
例如
for(int i = 0; i <5; i ++)
{
@ Html.Partial( “”)
}
这将显示5次局部视图。

答案 1 :(得分:0)

您可以使用jQuery的$.get()$.ajax()

放置一些html元素(<div class='myclass'>

<div id='container>
  <div class='myclass' my-ajax-url='@Model.urlForWhatever' my-url-param='@Model.foo'>
  </div>

  <div class='myclass' my-ajax-url='@Model.urlForWhatever2' my-url-param='@Model.bar'>
  </div>

</div>

添加类似:

$(document).ready(function () {
  var elems = $('.myclass').each(function () {
     // Perform Ajax call and render the output (contained in response)
     // the element is referreable using $(this) in the each function, so you can swap
     // its content via $(this).html().
     var url=$(this).attr('my-ajax-url') + '&param=' + $(this).attr('my-url-param');
     $.get(url, function(data) {
         $(this).html(data);
     });
  });
});

Ajax助手很好,但我发现它对某些东西有些限制。 我更喜欢将数据存储在DOM元素中,然后使用jQuery构建url(这段代码被简化,没有人会添加&amp; name =值而不先检查它)

PS:写这篇文章时没有机会测试它,但至少应该知道如何做到这一点。