【问题标题】:MVC3,Razor,Question about different LayoutMVC3,Razor,关于不同布局的问题
【发布时间】:2014-01-12 11:07:15
【问题描述】:

看下图:

我现在无法提交图片,请点击code image查看图片。

我在“登录”文件中设置了一个_ViewStart,_Layout和相关文件,这些文件与“共享”文件不同。我想要的是在打开页面“/登录/索引”时显示不同的布局,而其他显示默认布局.它的效果和我的预期一样好。 但是当我使用一个部分在“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>
}

【问题讨论】:

  • 我发现了问题。使用 @RenderSection("HeadJs", false) 而不是 RenderSection("HeadJs", false);

标签: asp.net-mvc-3 layout razor


【解决方案1】:

您需要定义您的部分,一直到顶部母版页。

基本上是在做RenderSection("Myname", false);

【讨论】:

  • 我在登录文件中定义了一个新布局。该布局与默认布局有什么关系?并且我在每个布局文件中使用相同的部分名称定义了部分。默认布局具有相同的部分代码:@if (IsSectionDefined("HeadJs")) { RenderSection("HeadJs", false); }
  • 不要忘记使用 @RenderBody() 来处理所有未包含在部分中的 HTML 片段。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多