加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用c#以编程方式更改CSS文件

发布时间:2020-12-15 21:41:53 所属栏目:百科 来源:网络整理
导读:Asp.net使用c#我是这种编程语言的新手,并想知道是否有可能改变 .main{ padding: 0px 12px; margin: 0px 0px 0px 0px; min-height: 630px; width:auto; background-image:url('background.png'); } 基于按钮单击的背景图像URL.然后使用基于按钮单击的C#代码 p
Asp.net使用c#我是这种编程语言的新手,并想知道是否有可能改变

.main
{
    padding: 0px 12px;
    margin: 0px 0px 0px 0px;
    min-height: 630px;
    width:auto;
    background-image:url('background.png');
  }

基于按钮单击的背景图像URL.然后使用基于按钮单击的C#代码

protected void initiative_Click(object sender,ImageClickEventArgs e)
        {
            Session["agency"] = "Initiative";
        }

但主要的是CSS文件喜欢与按钮点击所在的页面不同的页面.

解决方法

选项1
而不是更改您的CSS文件应用基于会话的不同类.

.main
{
    padding: 0px 12px;
    margin: 0px 0px 0px 0px;
    min-height: 630px;
    width:auto;
}

.agency1 { background-image: url('agency1.png'); }
.agency2 { background-image: url('agency2.png'); }
.agency3 { background-image: url('agency3.png'); }

然后在div中添加两个类

<div class="main <%=Session["agency"]%>"></div>

选项2
创建一个Generic Handler,用于呈现特定的CSS并将其添加到您的页面

<link href="GenerateCss.ashx" rel="stylesheet" />

在你的GenerateCss.ashx.cs文件中你会有这样的东西

public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";

        string image = "main";
        if (context.Session != null && context.Session["agency"] != null)
        {
            image = context.Session["agency"].ToString();
        }

        string result = ".main{padding: 0px 12px; margin: 0px 0px 0px 0px; min-height: 630px; width:auto; background-image:url('" + image + ".png');}";
        context.Response.Write(result);
    }

要非常小心,因为如果使用不当,这可能会导致您进行XSS攻击.您需要确保会话[“代理”]不是用户可控制的.我的意思是用户无法提供该值,因为这将允许他们在那里注入他们想要的任何东西.

我不建议使用第二个选项,因为您将为每个请求调用此选项,并且当您可以将其设置为静态时,不要继续生成CSS.如果你可以使用选项1,我会说它会更好.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读