Asp.net 如何在页面中有条件地呈现CSS

Asp.net 如何在页面中有条件地呈现CSS,asp.net,css,webforms,Asp.net,Css,Webforms,我想基于cookie有条件地呈现页面中的css。在我的服务器端,我检测cookie并将cookie值存储在变量中,现在在aspx页面中,我希望借助if-else逻辑根据存储在variable at code behind中的cookie值呈现css 假设在我的.cs代码中,我存储cookie值,如strCountryCookie=“GB”,并且在我的aspx页面中,我尝试基于存储在变量中的cookie值,使用if-else逻辑来呈现css 这就是我正在尝试的方法 <% if(strCou

我想基于cookie有条件地呈现页面中的css。在我的服务器端,我检测cookie并将cookie值存储在变量中,现在在aspx页面中,我希望借助
if-else逻辑根据存储在variable at code behind中的cookie值呈现css

假设在我的.cs代码中,我存储cookie值,如
strCountryCookie=“GB”
,并且在我的aspx页面中,我尝试基于存储在变量中的cookie值,使用
if-else逻辑来呈现css

这就是我正在尝试的方法

<% 
if(strCountryCookie=="DE") 
{ %>
#acloginpod {
    width:380px;
    background:#ebebeb url(../images/acloginpodbg.gif) repeat-x;
    border:1px solid #d3d3d3;
    -webkit-border-radius:7px;
    -moz-border-radius:7px;
}
<% } else { %>

#acloginpod{
宽度:380px;
背景:#ebebebeURL(../images/acloginpodbg.gif)repeat-x;
边框:1px实心#D3;
-webkit边界半径:7px;
-moz边界半径:7px;
}

它显示出错误。因此,我无法理解如何使用if-else逻辑根据cookie值呈现它。所以请用概念来指导我。谢谢

您不能在CSS文件中使用任何代码

您可以将css放入一个单独的文件中,然后根据您的情况将其包含在标题中或不包含在标题中

在这种情况下,我更喜欢的方法是在每个页面上包含所有css标记,而是根据条件为我的元素分配不同的类。对于您来说,这意味着使用class.acloginpod而不是id,然后仅当country为“DE”时才使用此类分配元素

或者,如果您需要不同国家/地区的不同样式,请按以下方式定义图元类: “>


在css中定义不同的类,如mydiv DE或mydiv GB

正如其他人所说,您不能在css中使用服务器端代码。如果您确保可以从后面的代码访问字符串,您所做的几乎是正确的:

protected string strCountryCookie = "GB";
_countryStyleSheet.Href = String.Format("~/styles/{0}.css", strCountryCookie);
然后修正你的陈述

<head runat="server">
    <title>Test</title>
    <% if (strCountryCookie == "GB")
       { %>
       <style type="text/css">
        #acloginpod {
                width:380px;
                background:#ebebeb url(../images/acloginpodbg.gif) repeat-x;
                border:1px solid #d3d3d3;
                -webkit-border-radius:7px;
                -moz-border-radius:7px;
            }
       </style>
    <%} %>

在本例中,样式表将命名为
GB.css
,等等。

您不能在实际css中执行任何if/else操作,但您可以在
style=”“
中使用if/else。使用内联CSSCS无法决定外部条件。决策应在外部注入。
_countryStyleSheet.Href = String.Format("~/styles/{0}.css", strCountryCookie);