2012-01-27 150 views
0

我是相当新的ASP MVC,我想知道是否有可能reaload内容页面,无需重新加载树菜单(这是在页面的左侧) 。 我_layout.cshatml文件看起来是这样如何reaload只有内容页面(无需重新加载treemenu)

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <title>@ViewBag.Title</title> 

    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> 
    <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> 
    <script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script> 
</head> 
<body> 
    <div class="page"> 
     <header> 
      <div id="title"> 
       <h1>My MVC Application</h1> 
      </div> 
      <div id="logindisplay"> 
       @Html.Partial("_LogOnPartial") 
      </div> 
      <nav> 
       @{ Html.RenderAction("TopMenu", "Menu"); } 
      </nav> 
     </header> 

      <div id="categories"> 
     @{Html.RenderAction("TreeMenu", "Tree");} 
    </div> 
    <div id="content"> 
     @RenderBody() 
    </div> 
    </div> 
</body> 
</html> 

主要页面(负责渲染体)看起来像

@{ 
    ViewBag.Title = "Home Page"; 
} 
<a href='javascript:getView();'>Get Partial View</a> 
<script type="text/javascript"> 
    function getView() { 
     $('#divResult').load("@Url.Action("GridViewPartial", "Home")"); 
    } 
</script> 
<div id='divResult'> 
</div> 

我想有后到reaload只有内容DIV的能力用户单击树上的节点。有可能这样做吗?我知道有一个jQuery函数负载可以将数据注入到div中。但是,我不知道如何从树的部分视图中引用div“divResult”。是否有可能实现这一功能? 。

回答

1

加载内容应该在你的主布局视图,而不是在要加载的局部视图中的JavaScript代码

所以,主要布局的JavaScript代码:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <title>@ViewBag.Title</title> 

    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> 
    <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> 
    <script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script> 
</head> 
<body> 
    <div class="page"> 
     <header> 
      <div id="title"> 
       <h1>My MVC Application</h1> 
      </div> 
      <div id="logindisplay"> 
       @Html.Partial("_LogOnPartial") 
      </div> 
      <nav> 
       @{ Html.RenderAction("TopMenu", "Menu"); } 
      </nav> 
     </header> 

      <div id="categories"> 
     @{Html.RenderAction("TreeMenu", "Tree");} 
    </div> 
     <div id="content"> 
      @RenderBody() 
     </div> 
    </div> 
    <script type="text/javascript"> 
     $(doument).ready(function(){ 
      $('nav').click(function(){ // click on navigation, you should narrow it down to some id 
       $('#content').load("@Url.Action("GridViewPartial", "Home")"); // replaces content div's inner html with loaded partial 
      }); 
     }); 
    </script> 
</body> 
</html> 
相关问题