C# 如何从aspx引用cs中的常数?
如何从page.aspx中的constants.cs引用常量,我正在尝试以下操作,但没有成功C# 如何从aspx引用cs中的常数?,c#,asp.net,.net,C#,Asp.net,.net,如何从page.aspx中的constants.cs引用常量,我正在尝试以下操作,但没有成功 <%@ Import Namespace="MyConstants" %> <uc:MyControl ID="id1" runat="server" ConstantValue=" <%= Constants.TheValue %>" /> <uc:MyControl ID="id2" runat="server" ConstantValue=" <%
<%@ Import Namespace="MyConstants" %>
<uc:MyControl ID="id1" runat="server" ConstantValue=" <%= Constants.TheValue %>" />
<uc:MyControl ID="id2" runat="server" ConstantValue=" <%# Constants.TheValue %>" />
<uc:MyControl ID="id3" runat="server" ConstantValue=" <%= MyConstants.Constants.TheValue %>" />
<uc:MyControl ID="id4" runat="server" ConstantValue=" <%# MyConstants.Constants.TheValue %>" />
您可以在页面中将类的命名空间指定为:
<%@ Import Namespace="Your.Name.Space" %>
其中,
Your.Name.Space
包含导入命名空间所需的类常量。根据视图引擎的不同,执行此操作的方式也不同
如果您使用的是WebForms:
<%@ Import Namespace="Your.Namespace" %>
如果您在VB.NET中使用Razor
@Imports Your.Namespace
您是否尝试过使用完全限定的类名
<%= MyNamespace.MySubNamespace.Constants.TheValue %>
如果这样做有效,您可以将此名称空间添加到web.config中的名称空间列表中
<pages>
<namespaces>
<add namespace="MyNamespace.MySubNamespace" />
</namespaces>
</pages>
这样,您就不必在任何页面中完全限定类名。您必须对服务器控件使用#
。所以,你必须像这样修改你的代码
<!-- I have no references in page, is that missing? -->
<uc:MyControl ID="id runat="server" ConstantValue=" <%# Constants.TheValue %>" />
为什么不将该属性用于UserControl?:
UserControl属性:
public string ConstantValue { get; set; }
然后您可以使用它:
<uc:MyControl ID="id" runat="server" ConstantValue="any string" />
我建议您将静态属性添加到声明中,您不需要创建常量类的实例
这样就可以直接使用Constant.TheValue
快乐编码 当我尝试此操作时,常量.TheValue>>NULL
public string ConstantValue { get; set; }
<uc:MyControl ID="id" runat="server" ConstantValue="any string" />