【问题标题】:Update a partial view from another partial view in ASP.NET MVC without updating all the views从 ASP.NET MVC 中的另一个局部视图更新局部视图而不更新所有视图
【发布时间】:2014-04-22 11:38:11
【问题描述】:

我有两个局部视图显示,左侧是菜单,右侧是内容。

当我点击“Link 1”时,我想将“Content”区域从局部视图“PartialViewContent1”切换到“PartialViewContent2”。

在代码方面,我确实做到了:

文件索引.vbhtml

<body>
<article>
      <section>
           <p>@Html.Action("Menu", "Menu")</p>
      </section>
 </article>
<aside>

 @Select Case Convert.ToString(Model)
     Case "Menu2"
         @Html.Action("PartialViewContent2", "PartialViewContent2")
     Case "Menu3"
         @Html.Action("PartialViewContent3", "PartialViewContent3")
     Case Else
         @Html.Action("PartialViewContent1", "PartialViewContent1")
 End Select

 </aside>

文件 PartialViewMenu.vbhtml

<ul>
<li>
@Html.ActionLink("Link 1", "Link1", "Home")
</li>
<li>
@Html.ActionLink("Link 2", "Link2", "Home")
</li>
<li>
@Html.ActionLink("Link 3", "Link3", "Home")
</li>

使用这种架构,每个视图(以及显示的部分视图)都会刷新。

恐怕这种行为不符合人体工程学,并且在性能方面效率不高。是否有更新内容而不是菜单的方法(如果有页脚或页眉,则更新视图的其余部分)?

【问题讨论】:

    标签: asp.net-mvc vb.net razor partial-views


    【解决方案1】:

    我终于找到了如何做到这一点。

    使用 Ajax 的简单 jQuery 代码可以解决问题:

    $(function() {
    
      $('#link1').click(function(){
        $.ajax({
          url: this.href,
          dataType: "script",
          success: function(result) {
            $("#container").html(result);
          }
        });
      });     
    
      e.preventDefault();
      return false;
    });
    
    
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多