Bra*_*don 12 c# localization resharper-5.0
当我第一次开始本地化网站时,我只是做了这样的本地化:
<%= Resources.ResourceFile.ResourceName %>
Run Code Online (Sandbox Code Playgroud)
它似乎完美无缺.但是,ReSharper 5.0 Beta就是这样的:
<asp:Localize Text="<%$ Resources: ResourceFile, ResourceName %>" runat="server">
Value
</asp:Localize>
Run Code Online (Sandbox Code Playgroud)
它完成的方式有关系吗?
另外,为什么ReSharper将原始文本保留在localize控件中?我认为它是存在的,以防资源文件中的值为空,它可以显示"默认"文本.情况似乎并非如此.删除它并自行关闭本地化控件是否安全?
好吧,您不能在 asp 服务器控件上使用 <%= %> 服务器标记。
所以
<asp:Localize Text="<%= Resources.ResourceFile.ResourceName %>" runat="server">
Value
</asp:Localize>
Run Code Online (Sandbox Code Playgroud)
将导致编译错误。不幸的是,您无法将动态数据传递到服务器控件属性,除非它是数据绑定的,您可以在其中应用<%# %>服务器标记,例如:
<asp:Repeater runat="server">
...
<asp:Localize Text="<%# Resources.ResourceFile.ResourceName %>" runat="server">
Value
</asp:Localize>
...
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)
您始终可以将其移至代码隐藏,但这很糟糕。
这个<%$ %>“东西”可以工作,但是如果你按照它去做,准备进入维护地狱(当然,除非我们正在谈论一个 3 页的应用程序......)
就我个人而言,我使用<%= %>并且从不使用 re-sharper 来全球化/本地化我的应用程序。另外,我从未使用过<asp:Localize />服务器控件,也没有遇到任何问题......
| 归档时间: |
|
| 查看次数: |
2293 次 |
| 最近记录: |