gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:48:57 26 4
gpt4 key购买 nike

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 文件,不如根据 session 应用不同的类。

.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创建一个呈现特定 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 攻击 您需要确保 session["agency"] 不是用户可控的。我的意思是用户无法提供该值,因为这将允许他们在其中注入(inject)他们想要的任何东西。

不过,我不推荐第二个选项,因为您将为每个请求调用它,并且在您可以将其设为静态时继续生成 CSS 并不是一个好主意。如果您可以使用选项 1,我会说它会更好。

关于c# - 使用 C# 以编程方式更改 CSS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13084138/

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