【问题标题】:Using .Net ConfigurationManager.AppSettings in CSS在 CSS 中使用 .Net ConfigurationManager.AppSettings
【发布时间】:2021-10-09 10:17:04
【问题描述】:

我有一个AppSettings 键,用于我公司使用的特定颜色,我想将该颜色应用于CSS 类。使用密钥很重要,因为其他公司可能希望将颜色更改为自己的颜色。我的问题是我无法弄清楚如何在我的stylesheet 中应用我的密钥。有什么方法可以在.css 文件中调用ConfigurationManager,还是有某种解决方法?

Web.config 带键:

    <appSettings>
        <add key="webpages:Version" value="3.0.0.0" />
        <add key="webpages:Enabled" value="false" />
        <add key="ClientValidationEnabled" value="true" />
        <add key="UnobtrusiveJavaScriptEnabled" value="true" />
        <add key="CorpColorBlue" value="#004B85"/>
        <add key="CorpColorGreen" value="#009467"/>
        <add key="CorpColorOrange" value="#E98300"/>
    </appSettings>

CSS Class 我正在尝试将其应用于(brackets 用于澄清):

.thead-company {
    color: white;
    background-color: [COMPANY-BLUE];
    border-color: [COMPANY-BLUE];
}

我目前的解决方案是直接在我的views 中调用ConfigurationManager,但这是太多重复的代码,并且在更改color 时会出现问题。我能做些什么呢?

目前的解决方案:

...
@{
    var companyBlue = ConfigurationManager.AppSettings["CorpColorBlue"];
}
...
<table class="table table-hover table-bordered table-striped">
    <thead class="thead-company" style="background-color:@companyBlue; border-color:@companyBlue">
...

【问题讨论】:

  • 您有以下选项 - 1. 在您的 cshtml 文件中包含样式标签,2. 不确定您是否仍然可以这样做,但您曾经能够创建一个 ashx 文件并将其用作css。 3. 像你一样内联。尽管我不认为将这些值放在应用程序设置中的意义在于您似乎使用它们的方式,但它们将始终保持不变 - 除非您说 corpblue 可能会根据使用它的应用程序而有所不同
  • 或者使用 mvc,您可以将动作作为 css:stackoverflow.com/questions/3286010/…
  • 我将尝试使用您链接的 css 操作。我可能应该将颜色命名为 corpprimary、corpsecondary 等,因为颜色取决于公司的颜色,这意味着它们可能会有所不同(我意识到 corpblue 是一个坏名字,因为其他公司可能不使用蓝色)。谢谢你的回复,我会带着结果回来的。
  • 效果很好,我添加了我的工作解决方案作为答案。非常感谢您的帮助皮特!

标签: c# css asp.net-mvc


【解决方案1】:

作为在 cmets 中链接的用户 @Pete,this question 有我需要的答案。我避免重复代码的最佳方法是在问题中使用公认的答案并像这样实现它:

Controller:

public ContentResult GetCompanyColorStyle()
        {
            var builder = new StringBuilder();

            builder.Append(".thead-company-primary");
            builder.Append(" { ");
            builder.Append(string.Format("{0}: {1}; ", "background-color", System.Configuration.ConfigurationManager.AppSettings["CorpColorPrimary"]));
            builder.Append(string.Format("{0}: {1}; ", "border-color", System.Configuration.ConfigurationManager.AppSettings["CorpColorPrimary"]));
            builder.AppendLine("}");

            return Content(builder.ToString(), "text/css");
        }

_Layout.cshtml:

<link href="@Url.RouteUrl(new { controller = "Home", action = "GetCompanyColorStyle" })" rel="stylesheet" type="text/css" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-15
    • 2021-10-03
    • 2011-10-27
    • 2019-12-07
    • 1970-01-01
    • 2012-03-18
    • 2019-06-21
    相关资源
    最近更新 更多