我只是在阅读Literal
控件和控件之间的区别Localize
我知道这个问题已经在这里被问过,但在那里提出的回应对我来说不起作用。
根据 MSDN:
Localize 控件继承自 Literal 控件,并且在各个方面都与其相同。Localize 控件在设计时用于区分可以本地化的静态文本与其他静态文本。
我目前对Localize
和Literal
控件的理解是,前者在 Visual Studio 的设计时呈现默认值,而后者将呈现计算值,例如资源文件的内容。
我创建了一个小页面来证明这一点,但我找不到任何区别,这就是我尝试的原因:
<div><asp:Localize ID="Localize1" Text="<%$Resources: Resource, String1 %>" runat="server" >String1</asp:Localize></div>
<div><asp:Literal ID="Literal1" Text="<%$Resources: Resource, String1 %>" runat="server" >String1</asp:Literal></div>
<div><asp:Label ID="Label1" Text="<%$Resources: Resource, String1 %>" runat="server" >String1</asp:Label></div>
上面的代码呈现如下:
<div>ploop</div>
<div>ploop</div>
<div><span id="Label1">ploop</span></div>
到目前为止一切顺利,但我希望在设计时发现 Visual Studio 的不同之处,但我没有,这是 Visual Studio 输出
作为附加说明,我知道在使用资源时我可以使用隐式资源(使用本地资源时),在设计时使用默认值。例子:
<asp:Label ID="Label1" runat="server" meta:resourcekey="Label1Resource1"
Text="Label"></asp:Label>
使用上面的代码,我得到了在 Visual Studio 中按预期在设计时呈现的文本标签。
Literal
那么控件和控件之间有什么区别Localize
?,我错过了什么?
注意:我使用网站和 Web 应用程序进行了测试