aspx页面中的代码缩短

时间:2013-10-07 02:01:22

标签: asp.net

(我不是以英语为母语的人,所以文字可能不自然)

我在做asp.net项目的本地化。 为了提高语言翻译效率,我将.aspx中的字符串提取到全局资源文件中。 (我将资源文件命名为'StringTable.resx'。)

在该过程中,aspx页面中的字符串更改如下:

  

之前:Admin ID

     

之后:<asp:Literal runat="server" Text="<%$ Resources:StringTable, STR_ADMIN_ID %>">

'After code'看起来有点长,所以我想缩短那段代码。 (例如,删除runat =“server”语句,删除资源名称等...) 在C / C ++案例中,可以使用#define宏。

在.aspx页面中有没有办法做到这一点? (不在文件后面的代码中) 任何想法将不胜感激。



======以下是我自己的答案======================================= =

我正在使用VS2008,所以我不能在.NET 4.0中使用<%:语法。

我介绍了我的替代解决方案(我不确定这是最佳解决方案)


首先,我在.aspx文件的上半部分添加了这个指令。

<%@ Import Namespace="Resources" %>

(我想设置Namespace =“Resources.StringTable”来删除重复的'StringTable',但是不允许这样做。)

之后,我换了

<asp:Literal runat="server" Text="<%$ Resources:StringTable, STR_ADMIN_ID %>">

<%= StringTable.STR_ADMIN_ID %>



关键字'StringTable'仍然存在,但它看起来比原始代码更好。 :)



======添加========================================

但是当使用此方法时,Visual Studio的“设计”预览模式不显示资源字符串..

所以我似乎必须返回原始的长代码。 :(

(该方法适用于具有'刷新'功能的'设计'模式。)

1 个答案:

答案 0 :(得分:1)

<%: StringTable.STR_ADMIN_ID %>

...就是你所需要的:)

这使用ASP.NET 4中引入的新<%: snyntax,如果您使用2或3,则需要<%= Html.Encode((MVC)或<%= Server.HtmlEncode(WebForms)< / p>