2. И никак не пойму разницу между <%, <%#, <%$, <%=
3. Как правильно оформить в коде страницы <h1><%=Project.Resources.Strings.Welcome%></h1> чтобы в Design режиме там было видно значение из ресурсов или из кода страницы (сейчас в режиме ди зайна там пусто)
что вроде <h1>DesignMode ? "Welcome","<%=Project.Resources.Strings.Welcome%>"</h1>
Может быть Вам лучше посмотреть 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 будет бесплатно и сразу работать.
Здравствуйте, Alexandr Sulimov, Вы писали:
AS>Пишу под WinForms, когда пробовал php. Сечас решил посмтреть ASP.NET AS>И встречаются вопросы которые непонятны:
AS>1. Такой код работает, и выдает локализированное значение AS>
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>
Используй <%$
Здравствуйте, gandjustas, Вы писали:
G>Из этого можно понять что выражения, которые вычисляют что-то на сервере, нельзя использовать внутри серверных элементов.
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, gandjustas, Вы писали:
G>>Из этого можно понять что выражения, которые вычисляют что-то на сервере, нельзя использовать внутри серверных элементов.
L>Опечатался?
Ыыыы... фигню какую-то написал
Короче нельзя внутри серврерных элементов использовать <% и <%= ибо работают они только при выводе страницы
Здравствуйте, gandjustas, Вы писали:
G>Ыыыы... фигню какую-то написал
G>Короче нельзя внутри серврерных элементов использовать <% и <%= ибо работают они только при выводе страницы
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, gandjustas, Вы писали:
G>>Ыыыы... фигню какую-то написал
G>>Короче нельзя внутри серврерных элементов использовать <% и <%= ибо работают они только при выводе страницы
L>Не только.
Здравствуйте, gandjustas, Вы писали:
G>>>Короче нельзя внутри серврерных элементов использовать <% и <%= ибо работают они только при выводе страницы
L>>Не только.
G>Что не только?
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, gandjustas, Вы писали:
G>>>>Короче нельзя внутри серврерных элементов использовать <% и <%= ибо работают они только при выводе страницы
L>>>Не только.
G>>Что не только?
L><% и <%= работают не только при выводе страницы
Здравствуйте, Gollum, Вы писали:
G>Когда-то давно я делал презентации по ASP.NET 2.0, локализации и различным полезным приемам. Актуальности оно особо не утратило, можно скачать и посмотреть, правда оно для 2005 студии, как бы даже не беты
Свой [L]MyExpressionBuilder упростил локализацию Text="<%$ L:Welcome%>". Мне кажется вариант удобный.
Едиственное что не удобно это в дизайне светится Expression: Welcome. Есть ли способ самому указать вывод в дизайне.
G>Нужно взять серверный контрол asp:Label, и правильно его локализовать. Тогда и design-time будет бесплатно и сразу работать.
Что значить "правильно локализовать"?