Элементарные вопросы
От: Alexandr Sulimov Украина www.ase.com.ua
Дата: 23.09.10 11:03
Оценка:
Пишу под WinForms, когда пробовал php. Сечас решил посмтреть ASP.NET
И встречаются вопросы которые непонятны:

1. Такой код работает, и выдает локализированное значение

<h1><%=Project.Resources.Strings.Welcome%></h1>

А такой код показывает "<%=Project.Resources.Strings.Welcome%>" вместо значения

<asp:MenuItem NavigateUrl="~/Default.aspx" runat="server" Text='<%=Project.Resources.Strings.Welcome%>'/>


2. И никак не пойму разницу между <%, <%#, <%$, <%=

3. Как правильно оформить в коде страницы <h1><%=Project.Resources.Strings.Welcome%></h1> чтобы в Design режиме там было видно значение из ресурсов или из кода страницы (сейчас в режиме ди зайна там пусто)
что вроде <h1>DesignMode ? "Welcome","<%=Project.Resources.Strings.Welcome%>"</h1>
... << RSDN@Home 1.2.0 alpha 4 rev. 1090>>
Re: Элементарные вопросы
От: Gollum Россия  
Дата: 23.09.10 11:18
Оценка: 6 (1)
Здравствуйте, Alexandr Sulimov, Вы писали:

Может быть Вам лучше посмотреть ASP.NET MVC, концепция серверных контролов при переходе с PHP дается тяжело

AS><asp:MenuItem NavigateUrl="~/Default.aspx" runat="server" Text='<%=Project.Resources.Strings.Welcome%>'/>


Внутри определения этого контрола так работать не будет. Советую для начала взять любую книжку по asp.net web forms и почитать про серверные контролы и как они локализуются. Это достаточно просто — от локальных ресурсов до $-expressions (web-expressions), в данном случае <%$ resources %>

Когда-то давно я делал презентации по ASP.NET 2.0, локализации и различным полезным приемам. Актуальности оно особо не утратило, можно скачать и посмотреть, правда оно для 2005 студии, как бы даже не беты

AS>2. И никак не пойму разницу между <%, <%#, <%$, <%=


<% — открытие блока серверного кода
<%# — выполнение выражения при привязке к данным
<%$ — выполнение $ expression (при билде или при выполнении билдпровайдера в двух разных моделях веб-приложения)
<%= вывод строки-результата выполнения серверного кода

AS>3. Как правильно оформить в коде страницы <h1><%=Project.Resources.Strings.Welcome%></h1> чтобы в Design режиме там было видно значение из ресурсов или из кода страницы (сейчас в режиме ди зайна там пусто)


Нужно взять серверный контрол asp:Label, и правильно его локализовать. Тогда и design-time будет бесплатно и сразу работать.
... << RSDN@Home 1.2.0 alpha 4 rev. 1082>>
Eugene Agafonov on the .NET

Re: Элементарные вопросы
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 26.09.10 18:05
Оценка:
Здравствуйте, Alexandr Sulimov, Вы писали:

AS>Пишу под WinForms, когда пробовал php. Сечас решил посмтреть ASP.NET

AS>И встречаются вопросы которые непонятны:

AS>1. Такой код работает, и выдает локализированное значение

AS>

AS><h1><%=Project.Resources.Strings.Welcome%></h1>

AS>А такой код показывает "<%=Project.Resources.Strings.Welcome%>" вместо значения
AS>

AS><asp:MenuItem NavigateUrl="~/Default.aspx" runat="server" Text='<%=Project.Resources.Strings.Welcome%>'/>


AS>2. И никак не пойму разницу между <%, <%#, <%$, <%=


Чтобы понять это надо сначала понять что .aspx станицы компилируются.
1)Если встречается блок кода <%, то он помещается в метод формирования текста страницы
2)Если встречается блок <%=, то выражение внутри него помещается в метод формирования текста страницы в виде Response.Write(<выражение>)
3)Если встречается блок <%$, то ищется провайдер, указанный после знака доллара, а потом этот провайдер как-то интерпретирует выражение внутри блока и выводит его при формировании текста страницы.
4)Если встречается серверный элемент управления (с тегом runat="server"), то создается соответствующий объект,
внутри серверного элемента парсятся выражения связывания <%# и генерируется код привязки выражения к данным,
также внутри серверного элемента парсятся выражения <%$ для получения значений свойств.
5)Остальной текст выводится как есть.
Это очень упрощенное описание, но для начала хватит.

Из этого можно понять что выражения, которые вычисляют что-то на сервере, нельзя использовать внутри серверных элементов.

AS>3. Как правильно оформить в коде страницы <h1><%=Project.Resources.Strings.Welcome%></h1> чтобы в Design режиме там было видно значение из ресурсов или из кода страницы (сейчас в режиме ди зайна там пусто)

AS>что вроде <h1>DesignMode ? "Welcome","<%=Project.Resources.Strings.Welcome%>"</h1>
Используй <%$
Re[2]: Элементарные вопросы
От: Lloyd Россия  
Дата: 26.09.10 18:35
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Из этого можно понять что выражения, которые вычисляют что-то на сервере, нельзя использовать внутри серверных элементов.


Опечатался?
Re[3]: Элементарные вопросы
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 26.09.10 18:43
Оценка: +1
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, gandjustas, Вы писали:


G>>Из этого можно понять что выражения, которые вычисляют что-то на сервере, нельзя использовать внутри серверных элементов.


L>Опечатался?


Ыыыы... фигню какую-то написал

Короче нельзя внутри серврерных элементов использовать <% и <%= ибо работают они только при выводе страницы
Re[4]: Элементарные вопросы
От: Lloyd Россия  
Дата: 26.09.10 18:49
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Ыыыы... фигню какую-то написал


G>Короче нельзя внутри серврерных элементов использовать <% и <%= ибо работают они только при выводе страницы


Не только.
Re[5]: Элементарные вопросы
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 26.09.10 18:52
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, gandjustas, Вы писали:


G>>Ыыыы... фигню какую-то написал


G>>Короче нельзя внутри серврерных элементов использовать <% и <%= ибо работают они только при выводе страницы


L>Не только.


Что не только?
Re[6]: Элементарные вопросы
От: Lloyd Россия  
Дата: 26.09.10 18:56
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>>>Короче нельзя внутри серврерных элементов использовать <% и <%= ибо работают они только при выводе страницы


L>>Не только.


G>Что не только?


<% и <%= работают не только при выводе страницы
Re[7]: Элементарные вопросы
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 26.09.10 19:05
Оценка: :)
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, gandjustas, Вы писали:


G>>>>Короче нельзя внутри серврерных элементов использовать <% и <%= ибо работают они только при выводе страницы


L>>>Не только.


G>>Что не только?


L><% и <%= работают не только при выводе страницы


Для начала такого понимания хватит.
Re[2]: Элементарные вопросы
От: Alexandr Sulimov Украина www.ase.com.ua
Дата: 05.10.10 11:34
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Когда-то давно я делал презентации по ASP.NET 2.0, локализации и различным полезным приемам. Актуальности оно особо не утратило, можно скачать и посмотреть, правда оно для 2005 студии, как бы даже не беты


Свой [L]MyExpressionBuilder упростил локализацию Text="<%$ L:Welcome%>". Мне кажется вариант удобный.
Едиственное что не удобно это в дизайне светится Expression: Welcome. Есть ли способ самому указать вывод в дизайне.

G>Нужно взять серверный контрол asp:Label, и правильно его локализовать. Тогда и design-time будет бесплатно и сразу работать.

Что значить "правильно локализовать"?
... << RSDN@Home 1.2.0 alpha 4 rev. 1090>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.