如何在服务器标签中使用强类型资源?

时间:2011-08-09 09:53:25

标签: c# .net asp.net webforms

我正在尝试更改一些ASP.NET代码,以使用我们在C#代码中使用的强类型转换。目前代码如下所示:

<asp:HyperLink runat="server" Text='<%$ Resources:Blah1,Blah2 %>' />

我希望它看起来像这样:

<asp:HyperLink runat="server" Text='<% Translations.Blah1.Blah2 %>' NavigateUrl="#" />

原因是我们在第一种情况下使用了自定义提供程序,并且它与aspnet_compiler不兼容,我们正在尝试消除由不编译的aspx / ascx文件引起的问题。

但是,如果我更改代码(如上所示),我会收到此错误:

Server tags cannot contain <% ... %> constructs.

有没有办法实现这一点,而无需使用&lt;%#Databind%&gt;标签然后确保调用Databind?使用<%= %>也不起作用(可能是因为它直接写入响应流,但我需要设置属性)。

编辑:我需要以编程方式跨越数千个文件,因此将其移至代码隐藏文件不是一种选择:(

2 个答案:

答案 0 :(得分:0)

为超链接指定ID,并从代码隐藏中设置text属性。

额外优势:您将逻辑从演示文稿中分离并填写各自的值

答案 1 :(得分:0)

我能找到的唯一解决方案是将资源放在打开/关闭标记之间。这仅适用于某些控件,因此需要更改其他控件。

<asp:HyperLink runat="server" NavigateUrl="#"><% Translations.Blah1.Blah2 %></asp:HyperLink>