如何从aspx中引用cs中的常量?

时间:2012-10-09 07:41:54

标签: 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=" <%# 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";

6 个答案:

答案 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

快乐编码!!!