Когда построители выражений ASP.NET наиболее полезны? - PullRequest
6 голосов
/ 17 июня 2009

Я видел пример использования построителей выражений и создания собственных классов построителей выражений здесь:

http://aspnet.4guysfromrolla.com/articles/022509-1.aspx

Однако я не вижу смысла в использовании этого подхода. Это не кажется намного проще, чем программная установка значений в вашем коде.

Насколько я могу судить, единственное, что вы можете с ними сделать, это установить свойства. Может быть, они будут полезны для установки значений по умолчанию для определенных элементов управления?

Может ли кто-нибудь пролить свет на то, где эта функция ASP.NET становится мощной?

Ответы [ 4 ]

4 голосов
/ 17 июня 2009

Мы используем пользовательский конструктор выражений для локализации нашего приложения. Например. разметка выглядит так:

<asp:LinkButton Text="<%$ Str:SomeString %>" ... />

Построитель выражений считывает строку с идентификатором SomeString из файла ресурсов (с учетом языковых предпочтений текущего пользователя) и назначает ее свойству Text элемента LinkButton.

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

1 голос
/ 17 июня 2009

Пользовательские выражения удобны, если вы заботитесь о ViewState (вам следует).См. TRULY Понимание ViewState .

0 голосов
/ 16 апреля 2010

Это полезно, когда вам нужно выполнить выражение в начале жизненного цикла страницы. Выполняется, когда параметр необходим не в определенный момент жизненного цикла страницы.

Также взгляните на создание общего назначения Конструктор выражений «Код» .

0 голосов
/ 21 января 2010

Использование некоторых параметров javascript на стороне клиента «динамическим» - хорошее применение для этой функции.

Допустим, у вас есть параметр в файле web.config, который вы хотите передать клиенту в теге javascript. Вы можете обработать событие OnRender в коде позади и обойтись с js там, но это было бы ужасно. Гораздо приятнее делать что-то подобное в ASPX:

 <script type="text/javascript">
   var sessionKill = <%$ AppSettings:ClientSessionTimeOut%>
...