我已经问过这个问题了,但是我用错了措辞。
我GetRandColor()
在服务器上有一个返回System.Drawing.Color
对象的方法。
我想要的是能够在页面加载时使用它来设置 html 属性。举个例子,
<html>
<body bgcolor="#GetRandColor()">
<h1>Hello world!</h1>
</body>
</html>
您不能System.Drawing.Color
从函数中返回对象,因为浏览器只能理解文本。因此,您应该返回颜色的字符串表示形式,以 RGB、HEX 格式或您拥有的格式。
您的方法应如下所示:
protected string GetRandColor()
{
return ColorTranslator.ToHtml(Color.Red);
}
您可以这样设置表单的背景:
<body style="background-color:<%=GetRandColor()%>;">
如果 GetRandColor() 在静态类中,这应该有效:
<body bgcolor="<%= System.Drawing.ColorTranslator.ToHtml(ClassName.GetRandColor()) %>">
您可能需要在类名之前添加类的命名空间。
您可以借助内联表达式来做到这一点:.NET Framework 中的内联表达式
显示表达式 (<%= ... %>)
bgcolor="<%= System.Drawing.ColorTranslator.ToHtml(GetRandColor()) %>"
您可以使用ColorTranslator将 Drawing.Color 转换为 HTML 颜色值。例如,
System.Drawing.Color c = System.Drawing.ColorTranslator.FromHtml("#F5F7F8");
String strHtmlColor = System.Drawing.ColorTranslator.ToHtml(c);
此链接也会对您有所帮助:msdn.microsoft.com/en-us/library/system.drawing.colortranslator.fromhtml.aspx
public string GetRandHtmlColor(){
System.Drawing.Color c = GetRandColor();
return System.Drawing.ColorTranslator.ToHtml(c);
}