如何在page.aspx中引用constants.cs中的常量,我尝试以下操作但没有成功
<%@ 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 %>" />
并在Constants.cs
namespace MyConstants
public class Constants
public const string TheValue = "Hello, World";
答案 0 :(得分:3)
您需要导入命名空间。根据您的视图引擎,您可以这样做。
如果您使用的是WebForms:
<%@ Import Namespace="Your.Namespace" %>
如果您正在使用带有C#的Razor
@using Your.Namespace
如果您在VB.NET中使用Razor
@Imports Your.Namespace
答案 1 :(得分:3)
您是否尝试过使用完全限定的类名?
<%= MyNamespace.MySubNamespace.Constants.TheValue %>
如果可行,您可以将此命名空间添加到web.config中的命名空间列表。
<pages>
<namespaces>
<add namespace="MyNamespace.MySubNamespace" />
</namespaces>
</pages>
然后您不必在任何页面中完全限定班级名称。
答案 2 :(得分:1)
您可以在页面中为类指定名称空间:
<%@ Import Namespace="Your.Name.Space" %>
其中Your.Name.Space
包含班级Constants
答案 3 :(得分:0)
您必须将#
与服务器控件一起使用。所以,你必须像这样更改你的代码。
<!-- I have no references in page, is that missing? -->
<uc:MyControl ID="id runat="server" ConstantValue=" <%# Constants.TheValue %>" />
答案 4 :(得分:0)
为什么不为UserControl使用该属性?:
UserControl属性:
public string ConstantValue { get; set; }
然后你可以使用它:
<uc:MyControl ID="id" runat="server" ConstantValue="any string" />
答案 5 :(得分:0)
我建议你在声明中添加静态属性,&amp;您不需要创建Constant类的实例。
这样你可以直接使用Constant.TheValue
快乐编码!!!