Value 完成方式重-6ren">
gpt4 book ai didi

c# - 这两种在 aspx/ascx 文件中本地化字符串的方法之间的区别?

转载 作者:可可西里 更新时间:2023-11-01 08:27:46 24 4
gpt4 key购买 nike

当我第一次开始对网站进行本地化时,我是这样进行本地化的:

<%= Resources.ResourceFile.ResourceName %>

它似乎工作得很好。然而,ReSharper 5.0 Beta 是这样做的:

<asp:Localize Text="<%$ Resources: ResourceFile, ResourceName %>" runat="server">
Value
</asp:Localize>

完成方式重要吗?

另外,为什么 ReSharper 将原始文本保留在本地化控件中?我认为如果资源文件中的值是空的,它可以显示“默认”文本。情况似乎并非如此。删除它并自行关闭本地化控件是否安全?

最佳答案

嗯,您不能在 asp 服务器控件上使用 <%= %> 服务器标记。

所以

<asp:Localize Text="<%= Resources.ResourceFile.ResourceName %>" runat="server">
Value
</asp:Localize>

会导致编译错误。不幸的是,您不能将动态数据传递给服务器控件属性,除非它是数据绑定(bind)的,您可以在其中应用 <%# %>服务器标签,例如:

<asp:Repeater runat="server">
...
<asp:Localize Text="<%# Resources.ResourceFile.ResourceName %>" runat="server">
Value
</asp:Localize>
...
</asp:Repeater>

您始终可以将它移至代码隐藏,但这很糟糕。

<%$ %>但是,如果您准备进入维护 hell ,“东西”会起作用(当然,除非我们谈论的是一个 3 页的应用程序...)

我个人使用 <%= %>而且我从不使用 re-sharper 来全局化/本地化我的应用程序。另外,我从未使用过 <asp:Localize />服务器控制,我没有遇到任何问题...

关于c# - 这两种在 aspx/ascx 文件中本地化字符串的方法之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2883163/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com