如何在不刷新mvc中的完整页面的情况下刷新局部视图

时间:2011-06-14 05:01:01

标签: asp.net-mvc

我在我的应用程序中使用Ajax Tab面板。 左侧有4个标签,右侧有部分视图。 在每个选项卡中,我显示一些数据,每个选项卡上都有一个选择链接按钮。 当我点击任何选择链接按钮时,我用部分信息填充局部视图。 当发生这种情况时,我的视图将再次完全加载。 A B C D

例如这些是标签。 让我们假设我在选项卡B上,现在当我点击选择链接按钮时,我的视图完全加载了信息。 但是此时标签松散了焦点。我回到了默认值。 所以我想要帮助 1)要么我必须只刷新部分视图而不加载整个页面 2)或者我需要在点击选择链接按钮时保持活动的标签索引值 请帮我解决这个问题 并提供我的例子

3 个答案:

答案 0 :(得分:1)

jQuery Tabs - Load contents only when clicked  以下是通过Ajax动态加载选项卡内容的示例。对于PHP,您需要更改的是放置控制器/操作而不是PHP页面的URL。

$.get("controller/action", {tab_clicked, "my_tab"}, tab_fetch_cb, "text/json/xml");

或者代替Ajax.ActionLink

使用<a onclick="LoadTab(@item.ID)">Item @item.ID</a>  和jquery函数来更改选项卡并加载数据dyanamicaly

function LoadTab(id){
     //Change tab here Ex: $('#tabs').tabs('select', index);
      $.get('ajax/test.html', {Id, id},function(data) {
          $('#Partial_Controller_Name').html(data);

      });

}

答案 1 :(得分:0)

在tab的click事件上写一个ajax调用,并在选项卡的容器中加载局部视图

答案 2 :(得分:0)

这可以使用RjsResult类

来完成

如果使用mvc1,你可以使用RjsResult.cs

通过这个..你可以在页面中更新你想要的div ...

将其用于实施

public ActionResult Some_Method(){
RjsResult r = new RjsResult();
ViewData["SomeData"] = Some_Function();
r.update("DIV_id","PartialPagePath",ViewData,ControllerContext);
return r;
}

所以当你点击一些想法..这个功能将被实现,并将刷新div与部分

查看部分

<div id="DIV_id"></div>

只需点击一下即可更新任意数量的dv:)