2011-08-22 28 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碎片。 –