(我不是以英语为母语的人,所以文字可能不自然)
我正在做asp.net项目的本地化工作。为了提高语言转换的效率,我将.aspx中的字符串提取到全局资源文件中。(我将资源文件命名为“StringTable.resx”。)
在此过程中,aspx页面中的字符串更改如下:
以前:
Admin ID后:<asp:Literal runat="server" Text="<%$ Resources:StringTable, STR_ADMIN_ID %>">
“后代码”看起来有点长,所以我想缩短代码。(例如,删除runat="server“语句,删除资源名称等.)在C/C++情况下,可以使用#define宏。
在.aspx页面中有任何方法可以做到这一点吗?(而不是在文件后面的代码中)任何想法都会受到欢迎。
下面的======是我自己的答案========================================
我使用的是VS2008,所以不能在.NET 4.0中使用.NET语法。
我还介绍了我的替代解决方案(我不确定这是最好的解决方案)
首先,我在.aspx文件的上部添加了这个指令。
<%@ Import Namespace="Resources" %>(我想设置Namespace="Resources.StringTable“以删除重复的'StringTable',但这是不允许的。)
在那之后,我取代了
<asp:Literal runat="server" Text="<%$ Resources:StringTable, STR_ADMIN_ID %>">至
<%= StringTable.STR_ADMIN_ID %>在关键字“StringTable”仍然存在的情况下,它并不是完全干净的,但是它看起来比原始代码更好。:)
======添加========================================
但在使用此方法时,Visual的“设计”预览模式不会显示资源字符串。
因此,我似乎必须回到原来的长代码。:(
(该方法适用于带有“刷新”功能的“设计”模式。)
发布于 2013-10-07 02:05:02
<%: StringTable.STR_ADMIN_ID %>...is您所需的一切:)
这使用了在<%: 4中引入的新的ASP.NET snyntax,如果您使用的是2或3,则需要<%= Html.Encode( (MVC)或<%= Server.HtmlEncode (WebForms)
https://stackoverflow.com/questions/19216075
复制相似问题