ASP.NET Expression Builders何时最有用?

时间:2009-06-16 20:15:30

标签: c# asp.net vb.net expressionbuilder

我看到了一个使用Expression Builders的例子,并在这里创建了自己的Custom Expression Builder类:

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

但是,我没有看到使用这种方法的价值。它似乎没有比在后面的代码中以编程方式设置值更容易。

据我所知,你唯一可以做的就是设置属性。也许它们对某些控件的默认设置有用吗?

有人能说明这个ASP.NET功能在哪些方面变得强大吗?

4 个答案:

答案 0 :(得分:4)

我们正在使用自定义表达式构建器来本地化我们的应用程序。例如。标记看起来像这样:

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

表达式构建器从资源文件中读取具有ID SomeString的字符串(考虑当前用户的语言首选项)并将其分配给LinkBut​​ton的Text属性。

这非常灵活:我们可以通过简单地将资源文件复制到应用程序目录来添加语言。如果客户希望为该链接按钮添加不同的文本,他只需将自定义字符串添加到资源文件中,并更改表达式构建器中的字符串ID(无需更改代码隐藏)。

答案 1 :(得分:1)

如果你关心ViewState(你应该),自定义表达式很方便。请参阅TRULY Understanding ViewState

答案 2 :(得分:0)

当您需要在页面生命周期的早期执行表达式时,它非常有用。当需要参数不在页面生命周期的特定点时执行。

另请参阅制作通用'Code' expression builder

答案 3 :(得分:-1)

使一些客户端javascript参数“动态”,这是一个很好的用途。

因此,假设您在web.config文件中有一个设置,您希望在javascript标记中将其设置为客户端。您可以在后面的代码中处理OnRender事件并在那里使用js进行处理,但这会很难看。在ASPX中做这样的事情要好得多:

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