2011-06-23 18 views
6

Chciałbym uzyskać dostęp do pliku zasobów ze strony ASP.NET. Mam folder o nazwie "Zasoby" zawierający plik "WebResources.resx" na tym samym poziomie co strona. Nazwa klasy publicznej w wygenerowanym pliku WebResources.Designer.cs to także "WebResources" Nazwa mojej strony to "formulargenerator.aspx". Dostęp z poziomu kodu działa idealnie. Mogę przejść na 2 sposoby:Jak uzyskać dostęp do strony Resource.resx ze strony ASP.NET?

ResourceManager rm = new ResourceManager(typeof(WebResources)); 
string val = rm.GetString("Key"); 

i

string val = WebResources.Key; 

Ale w jaki sposób można uzyskać dostęp do strony bezpośrednio jeśli nie podoba mi się, aby zmienić nazwę pliku z zasobów? Próbowałem użyć folderu App_LocalResources - brak dostępu. Tylko jeśli nazwa pliku zasobu ma taką samą nazwę, jak strona, działa. Jaka jest składnia dostępu do zasobu? Poniższy kod nie działa. Czy/Czy mogę zaimportować przestrzeń nazw?

<asp:Label Text="<%$Resources: WebResources, Key%>" runat="server" /> 

poważaniem wyprzedzeniem

Odpowiedz

1

może chcesz wziąć spojrzeć na ASP.NET Web Page Resources Overview. Zasoby lokalne są specyficzne dla konkretnej strony aspx i używają innej konwencji nazewnictwa niż globalne zasoby aplikacji. Znacznik zasobu, którego używasz, najprawdopodobniej zadziała, jeśli korzystasz z zasobów globalnych.

+0

Przeczytałem, ale nie mogę użyć App_Global- lub App_LocalResources. Jeśli zmieniam nazwę pliku resx na taki sam jak aspx, działa on w sieci Web, ale nie w kodzie, a wygenerowana klasa jest nazywana stroną, ale kropka jest zamieniana na znak podkreślenia. (page_aspx). Jeśli nic nie pomoże, wszystkie kontrolki otrzymają identyfikator, a ja ustawię wartość onLoad(). –

+0

Czy mówisz, że nie możesz uzyskać dostępu do zasobów z tyłu kodu, gdy są one dodawane do App_GlobalResources? Zwykle, jeśli używasz Visual Studio do dodania klasy do App_GlobalResources, otrzymasz następujący wygenerowany kod: 'namespace Resourecs; klasa wewnętrzna MyResources {/ * .. niektóre odświeżają rzeczy i właściwości * /} '. Możesz uzyskać do nich dostęp za pomocą 'Resources.MyResources.Key'. MyResources będzie nazwą pliku zasobów. –

+0

Nie lubię używać App_GlobalResources, ponieważ wielu programistów tworzy moduły dla naszej aplikacji internetowej. Zostaną zainstalowane osobno. Jeśli to możliwe, bez interakcji z innymi modułami lub samą aplikacją internetową. Miałem nadzieję, że mogę wdrożyć jeden folder i to jest to. –

Powiązane problemy