2015-10-16 26 views
1

我有一個字符串資源,我可以在我的代碼訪問的背後,像這樣:如何訪問.aspx中的My.Resources?

My.Resources.SomeStringResource 

但是,如果我嘗試訪問它在像這樣的.aspx:

<a href="http://someurl.com"><%=My.Resources.SomeStringResource %></a> 

它不編譯。它似乎My.Computer,My.Log,My.Request和其他一些可用但不是。

正在嘗試做什麼?在ASP.NET Web應用程序

+0

這是什麼項目類型...網站? Web應用程序? – laylarenee

+0

Web應用程序 – Sarah

+0

我的答案應該顯示給您,您可能需要根據您的項目名稱空間調整根名稱空間。 – laylarenee

回答

2

變化的* .resx文件資源的訪問修飾符爲 「公共」:

enter image description here

然後在代碼前端訪問像這樣:

<%= WebApplication1.My.Resources.Resource1.String2%> 
+0

謝謝,這個和Don J的答案都有效,我選擇這個作爲答案,因爲我不需要在我的代碼中更改對My.Resources的所有引用 – Sarah

1

資源文件被創建,並以不同的方式使用(特別是當你想使用他們的標記,這是你以後在做什麼)

您無法訪問的原因我。標記中的資源是因爲標記文件被ASP.NET框架編譯爲一個單獨的類到單獨的程序集中,並且該程序集沒有對My.Resource的訪問權限(僅標記爲「Friend」訪問)。

因此,對於ASP.NET應用程序,你需要創建您在App_GlobalResources文件資源文件(如果使用的是共享資源),然後按以下方式運行:

假設資源文件的名稱是「 GLobalResources「在App_GlobalResources目錄中。

<asp:Literal runat="server" Text="<%$ Resources:GlobalResources, MyName %>" /> 

欲瞭解更多信息,請看看下面的頁面:

https://msdn.microsoft.com/en-us/library/ms227427.aspx

+0

我添加了一個替代解決方案,即將訪問修改器更改爲「公開」,以便您可以在任何地方使用它們。 – laylarenee

+0

謝謝你,你的解決方案確實奏效,我選擇了laylarenee作爲最佳答案,因爲我不需要更改我的代碼。如果我有代表,會贊成你。 – Sarah

+0

你走了,今天我學到了一些新東西。 – Don

相關問題