2012-10-09 55 views
2

我怎樣才能爲基準的常數從page.aspx constants.cs,我想下面沒有任何成功如何從aspx引用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"; 

回答

1

您可以指定命名空間類在頁面:

<%@ Import Namespace="Your.Name.Space" %> 

其中Your.Name.Space包含類Constants

3

您需要導入您的名稱空間。你根據你的視圖引擎做不同的處理。

如果您使用的WebForms:

<%@ Import Namespace="Your.Namespace" %> 

如果您使用的是與C#

@using Your.Namespace 

剃刀如果您使用剃刀用VB.NET

@Imports Your.Namespace 
3

你有沒有嘗試過使用完全合格的類名?

<%= MyNamespace.MySubNamespace.Constants.TheValue %> 

如果有效,可以將此名稱空間添加到web.config中的名稱空間列表中。

<pages> 
    <namespaces> 
    <add namespace="MyNamespace.MySubNamespace" /> 
    </namespaces> 
</pages> 

然後你不必在任何頁面中完全限定類名。

0

您必須將#用於服務器控件。所以,你必須像這樣改變你的代碼。

<!-- I have no references in page, is that missing? --> 
<uc:MyControl ID="id runat="server" ConstantValue=" <%# Constants.TheValue %>" /> 
+0

當我嘗試這個Constants.TheValue >> NULL – Makach

0

爲什麼不使用屬性爲您的用戶控件?:

用戶控件屬性:

public string ConstantValue { get; set; } 

那麼你可以使用它:

<uc:MyControl ID="id" runat="server" ConstantValue="any string" /> 
+0

因爲然後我不能使用一個編碼的常量 – Makach

0

我建議你添加靜態屬性聲明,&你不需要創建常量的實例SS。

這樣你就可以直接使用Constant.TheValue

編碼愉快!