gpt4 book ai didi

asp.net-mvc - 根据 Controller 的名称有条件地在布局中包含样式表

转载 作者:行者123 更新时间:2023-12-04 23:08:31 25 4
gpt4 key购买 nike

我正在学习 ASP.NET MVC 3 框架。在我的布局页面 ( _Layout.cshtml ) 中,我想根据 Controller 的名称有条件地包含一些 CSS 样式表。我怎么做?

最佳答案

您可以使用以下属性获取当前 Controller 名称:

ViewContext.RouteData.GetRequiredString("controller")

因此,根据其值,您可以包含或不包含样式表:
@if (ViewContext.RouteData.GetRequiredString("controller") == "somecontrollername")
{
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
}

或者使用自定义助手:
public static class CssExtensions
{
public static IHtmlString MyCss(this HtmlHelper html)
{
var currentController = html.ViewContext.RouteData.GetRequiredString("controller");
if (currentController != "somecontrollername")
{
return MvcHtmlString.Empty;
}

var urlHelper = new UrlHelper(html.ViewContext.RequestContext);
var link = new TagBuilder("link");
link.Attributes["rel"] = "stylesheet";
link.Attributes["type"] = "text/css";
link.Attributes["href"] = urlHelper.Content("~/Content/Site.css");
return MvcHtmlString.Create(link.ToString(TagRenderMode.SelfClosing));
}
}

并在布局中简单地:
@Html.MyCss()

关于asp.net-mvc - 根据 Controller 的名称有条件地在布局中包含样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5861633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com