2012-01-27 1 views
0

Я довольно новичок в ASP MVC, и мне было интересно, можно ли загружать страницу контента, не перезагружая древовидное меню (которое находится в левой части страницы) , Моего файл _layout.cshatml выглядит этакКак загрузить только страницу контента (без перезагрузки 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> 
Смежные вопросы