2015-10-16 3 views
1

У меня есть строковый ресурс я могу получить доступ в моем коде позади, как так:Как получить доступ к My.Resources в .aspx?

My.Resources.SomeStringResource 

Но если я пытаюсь открыть его в .aspx, как это:

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

Это не компилируется. Кажется My.Computer, My.Log, My.Request и некоторые другие доступны, но не .

Является ли то, что я пытаюсь сделать возможным?

+0

Какой тип проекта это ... Веб-сайт? Веб приложение? – laylarenee

+0

Веб-приложение – Sarah

+0

Мой ответ должен показать вам, вам может потребоваться настроить корневое пространство имен в соответствии с пространством имен проектов. – laylarenee

ответ

2

Изменить модификатор доступа к ресурсам для "Public" в файле * .resx:

enter image description here

, а затем получить доступ к кодовому фронту, как показано ниже:

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

Спасибо, и ответ на этот вопрос, и ответ Дон Дж, я выбрал это как ответ, так как мне не пришлось бы менять все ссылки на My.Resources в моем коде – Sarah

1

файлы ресурсов в веб-приложений ASP.NET создаются и используются в различной манере (особенно, если вы хотите использовать их в разметке, которая является то, что вы после этого)

Причина вы не можете получить доступ к My . Источники из разметки - это то, что файл разметки скомпилирован в отдельный класс с помощью структуры 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

Я добавил альтернативное решение, которое должно было изменить модификатор доступа на «Public», чтобы вы могли использовать их в любом месте. – laylarenee

+0

Спасибо, ваше решение действительно сработало, я выбрал laylarenee как лучший ответ, так как мне не пришлось бы менять свой код. Если бы у меня была репутация, вы бы продвинули вас. – Sarah

+0

Там вы идете, я узнал что-то новое сегодня. – Don