C# 变量名不替换为head标记内的值

C# 变量名不替换为head标记内的值,c#,asp.net,C#,Asp.net,我的asp.net站点有一个导航,它使用.active css标记更改活动页面上导航颜色的颜色 这在我的site.master标题中 .active { 背景色:#c62020; 右边框:1px实心; 左边距:-1px; } 这是伟大的作品,因为是。但是现在我想让它根据一个变量改变背景颜色,我在Site.Master.cs中有了代码 我知道我不能在标题内使用。什么是最好的方法让这个工作 谢谢为什么不把你的css类放在头的外面,放在身体里,然后你就可以在那里使用服务器标签了 另一种方法是通过j

我的asp.net站点有一个导航,它使用.active css标记更改活动页面上导航颜色的颜色

这在我的site.master标题中

.active
{
背景色:#c62020;
右边框:1px实心;
左边距:-1px;
}
这是伟大的作品,因为是。但是现在我想让它根据一个变量改变背景颜色,我在Site.Master.cs中有了代码

我知道我不能在标题内使用。什么是最好的方法让这个工作


谢谢

为什么不把你的css类放在头的外面,放在身体里,然后你就可以在那里使用服务器标签了

另一种方法是通过jQuery或javascript

$(document).ready(function(){
      $('.active').css("background-color","<%=serverVariable%>");
});
$(文档).ready(函数(){
$('.active').css(“背景色,”);
});

我不知道这是不是最好的办法。我也是初学者。但是我做了如下的事情。。 在.cs文件中从服务器端调用JavaScript函数,如

    this.Page.ClientScript.RegisterStartupScript(this.GetType(), "keyforfun",fun_setHeadcolor(your_variable), true);
然后在site.master页面中添加名为“fun_setHeadcolor”的javaScript函数,如


您可以将服务器标记添加到头部,但要注意如何添加,因为它们呈现的方式不同。谢谢你的建议。我试过了,发现“WebApp.SiteMaster.hextag”由于其保护级别而无法访问。即使我将字符串hextag=“#c62020”放在公共类SiteMaster:System.Web.UI.MasterPage中。我会继续玩它,看看为什么会出现这个错误。ViewData/ViewBag或者自定义渲染部分?在Site.Master.CS文件中,如何设置serverVariable?我一定是做错了什么,我只是想要我的serverVariable=“#c6202”。我让它工作了,忘了将serverVariable公开。如果我把css放在第一个链接中,它不会呈现。
    this.Page.ClientScript.RegisterStartupScript(this.GetType(), "keyforfun",fun_setHeadcolor(your_variable), true);
function fun_setHeadcolor(var1)
{ 
  //do stuff here to change background color
  //for example   $('.active').css("background-color",var1);
}