2011-08-09 44 views
2

我想改变一些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. 

有什么办法来实现这一目标,而不必使用<%#数据绑定%>标签,然后确保数据绑定被调用?使用<%= %>也不起作用(大概是因为它直接写入响应流,但我需要让它设置属性)。

编辑:我需要这个编程跨越成千上万的文件,所以将它移动到代码隐藏文件是不是一种选择:(

回答

0

我能找到的唯一的解决办法是把打开/关闭标签之间的资源这只是一些控制工作。 ,所以其他人将需要改变。

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

您的答案仍然正确吗?如果你能够使用标签的属性而不是内部html来解析,我正在做类似和好奇的事情。 – MADCookie

+0

您是否尝试过使用像 MADCookie

+0

@MADCookie这样的隐式资源表达式可悲的是,我们目前使用“inner HTML“(内容),并且这不起作用,从代码中设置它们(虽然我们不喜欢这样)。我们试图避免meta:ResourceKey,原因与<%$ Resources>相同。 –

0

给超链接的ID,并设置从文本属性。代码隐藏

额外的好处:你从演示分开你的逻辑和填补了各自的价值

+0

不幸的是,我必须这样做编程(跨文件十万),所以这不是一个合适的选择:-( –

+0

什么不编程这个代码?我发现这样会花费你一些时间,但这是一个更好的解决方案。 我甚至不知道这是否可能,因为您使用服务器端标记(通过使用runat)。我在尝试使用代码块来填充我的链接和脚本包含之前,遇到了这个问题。它适用于链接引用,但不适用于脚本引用。 – Rickjaah

+0

我必须在数千个文件中以编程方式进行这些更改。打开并解析代码隐藏文件以注入在正确的位置(并在正确的时间)执行此操作的代码不是一项简单的任务。 –

相关问题