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"; }
解决方法
选项1
而不是更改您的CSS文件应用基于会话的不同类.
而不是更改您的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,我会说它会更好.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。