.NET - 在布局顶部的剃刀视图中添加额外的样式表

问题描述 投票:0回答:2

我正在创建一个新视图,我想添加一些自定义CSS,所以我在内容文件夹中创建了一个名为ClientDetails的新CSS表,并在表单顶部引用它,因为我在另一个添加特定CSS表的线程上读到一个看法:

@model Linkofy.Models.Client

@{
ViewBag.Title = "Details";
}

@section Styles {
<link href="@Url.Content("~/Content/ClientDetails.css")" rel="stylesheet" type="text/css" />
}

<h2>@Html.DisplayFor(model => model.clientN)</h2>

但是使用@section Styles位我收到此错误:

System.Web.HttpException:已定义以下部分但尚未为布局页面“〜/ Views / Shared / _Layout.cshtml”:“样式”呈现。

虽然如果我删除@section样式位它工作正常,我想知道它是否只渲染该表而不是布局CSS如果它覆盖它或什么?如何将其添加到显示所需的所有其他工作表之上。

我试过四处寻找答案,但如果它是重复的,请将我链接到问题,我将关闭它,谢谢!

c# asp.net .net asp.net-mvc
2个回答
2
投票

问题:

'/'应用程序中的服务器错误。已定义以下部分,但尚未针对布局页面“〜/ Views / Shared / _Layout.cshtml”:“样式”进行渲染。描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.Web.HttpException:已定义以下部分但尚未为布局页面“〜/ Views / Shared / _Layout.cshtml”:“样式”呈现。

解:

在你的〜/ Views / Shared / _Layout.cshtml渲染部分使用

    @RenderSection("Styles", required: false)

有关详细信息,请参阅https://msdn.microsoft.com/en-us/library/gg537886(v=vs.111).aspx

您还必须声明布局:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
    ViewBag.Title = "Details";
}

0
投票

您收到此错误的原因在消息中说明。您可能在布局页面中有类似的内容:

@RenderSection("Styles")

当您像这样使用它时,默认情况下是必需的。每个页面都需要有额外的style部分。否则,您将收到您现在看到的错误。你需要做的是不要求该部分:

@RenderSection("Styles", required: false)
© www.soinside.com 2019 - 2024. All rights reserved.