2011-08-22 74 views
0

看看下面的圖片:MVC3,剃鬚刀,關於產品不同的佈局

我現在不能提交圖片,請點擊code image看到圖像。

我在「登錄」文件中設置了與「共享」文件不同的_ViewStart,_Layout和相關文件。我想要的是在打開頁面「/ Login/Index」時顯示不同的佈局,佈局,而且它的效果和我的預期一樣。 但是,當我使用一個部分在「index.cshtml」中加載「js」文件時,網頁顯示錯誤「定義了以下部分,但不包括佈局」〜/ Views/Login/_Layout.cshtml「:」HeadJs 「。」

以下代碼是登錄/佈局的一部分:

<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>@ViewBag.Title</title> 
    @if (IsSectionDefined("Meta")) 
    { 
     RenderSection("Meta", false); 
    } 
    <link href="@GlobalVal.__siteResource/Css/Global/Site.css" rel="stylesheet" type="text/css" /> 
    @if (IsSectionDefined("Css")) 
    { 
     RenderSection("Css", false); 
    } 
    <script type="text/javascript"> 
    var GlobalVal={__siteHome:"@(GlobalVal.__siteHome)",__siteResource:"@(GlobalVal.__siteResource)"}; 
    </script> 
    <script src="@GlobalVal.__siteResource/js/Lib/jquery-1.5.1.min.js" type="text/javascript"></script> 
    @if (IsSectionDefined("HeadJs")) 
    { 
     RenderSection("HeadJs", false); 
    } 
</head> 

和下面的代碼是 「/login/index.cshtml」:

@using TJK.Model; 
@model MemberUser 
@section HeadJs { 
<script src="@GlobalVal.__siteResource/Js/Lib/jquery.validate.min.js" type="text/javascript"></script> 
<script src="@GlobalVal.__siteResource/Js/Lib/jquery.validate.unobtrusive.min.js"  type="text/javascript"></script> 
} 
+0

我發現這個問題。 使用@RenderSection(「HeadJs」,false)而不是RenderSection(「HeadJs」,false); –

回答

1

您需要定義您的部分一直到頂級主頁面。

基本上在做RenderSection(「Myname」,false);

+0

我在登錄文件中定義了新的佈局。佈局與默認佈局有什麼關係?我已經通過使用相同的部分名稱在每個佈局文件中定義了部分。默認佈局具有相同的部分代碼: @if (IsSectionDefined(「HeadJs」)) { RenderSection(「HeadJs」,false); } –

+1

不要忘記使用@RenderBody()代替段落中未包含的所有HTML碎片。 –