7

我已经问过这个问题了,但是我用错了措辞。

GetRandColor()在服务器上有一个返回System.Drawing.Color对象的方法。

我想要的是能够在页面加载时使用它来设置 html 属性。举个例子,

<html>
<body bgcolor="#GetRandColor()">
<h1>Hello world!</h1>

</body>
</html>
4

5 回答 5

18

您不能System.Drawing.Color从函数中返回对象,因为浏览器只能理解文本。因此,您应该返回颜色的字符串表示形式,以 RGB、HEX 格式或您拥有的格式。

您的方法应如下所示:

 protected string GetRandColor()
 {
     return ColorTranslator.ToHtml(Color.Red);
 }

您可以这样设置表单的背景:

<body style="background-color:<%=GetRandColor()%>;">
于 2013-01-09T05:50:00.237 回答
2

如果 GetRandColor() 在静态类中,这应该有效:

<body bgcolor="<%= System.Drawing.ColorTranslator.ToHtml(ClassName.GetRandColor()) %>">

您可能需要在类名之前添加类的命名空间。

于 2013-01-09T05:43:38.100 回答
2

您可以借助内联表达式来做到这一点:.NET Framework 中的内联表达式

显示表达式 (<%= ... %>)

bgcolor="<%= System.Drawing.ColorTranslator.ToHtml(GetRandColor()) %>"
于 2013-01-09T05:51:20.587 回答
1

您可以使用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

于 2013-01-09T06:03:09.970 回答
0
public string GetRandHtmlColor(){

    System.Drawing.Color c = GetRandColor();
    return System.Drawing.ColorTranslator.ToHtml(c);
}
于 2013-01-09T05:41:35.753 回答