2011-07-12 37 views
1

我试图让我的网站的导航栏变得有点动态。 如果类标识符是已等于0我删除一些按钮,否则我显示它们:RenderSection已定义但未呈现

_Layout.cshtml:

<body> 
    <div class="page"> 
     <div id="header"> 
      <div id="logindisplay"> 
       @Html.Partial("_LogOnPartial") 
      </div>  
      <div id="menucontainer"> 
       @if (IsSectionDefined("Navigation")) 
       { 
        {RenderSection("Navigation", false);} 
       } 
       else 
       { 
        <p>No navigation setup!</p> 
       } 
      </div> 
     </div> 
     <div id="main"> 
      <div id="contentwrapper"> 
       @RenderBody() 
      </div> 
      <div id="footer"> 
      </div> 
     </div> 
    </div> 
</body> 

Index.cshtml:从我的HomeController

@model Project2.ViewModels.ProjectCategoryListViewModel 

@{ 
    ViewBag.Title = "Home Page"; 
} 

@section Navigation { 
    @{Html.RenderAction("LayoutNav", "Home", new { CategoryId = 0 });} 
} 

<!-- Rest of the page's code --> 

Index.cshtml: from My CategoryController

@model Project2.ViewModels.Categories.CategoryIndexViewModel 

@{ 
    ViewBag.Title = "Category Index"; 
} 

@section Navigation { 
    @{Html.RenderAction("LayoutNav", "Home", new { CategoryId = Model.Category.Id });} 
} 

<!-- Rest of the page's code --> 

我试过完全相同的设置,但没有的RenderAction和刚进入的HTML直接,但我不断收到此错误信息:

The following sections have been defined but have not been rendered for the layout page "~/Views/Shared/_Layout.cshtml": "Navigation". 

在类别和家庭控制器的指数行为是直接的,它会返回ActionResults视图。

任何想法发生了什么?

回答

4

您的RenderSection出现语法错误。这给一试:

@if (IsSectionDefined("Navigation")) 
{ 
    @RenderSection("Navigation", false) 
} 
else 
{ 
    <p>No navigation setup!</p> 
} 
+0

哦geez ...谢谢。它的作品^^ – LanFeusT

相关问题