我刚刚读到了Literal
控件和Localize
我知道这个问题已经被问到here但是我提出的答案在我的案例中不起作用。
根据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中获得了设计时呈现的文本 Label 。
那么Literal
和Localize
控制之间的区别是什么?我缺少什么?
注意:我使用网站和Web应用程序进行了测试
答案 0 :(得分:5)
@Jupaol,不确定你是否清楚<asp:Localize>
控件的确切内容,但它会将文本转换为本地语言。看看When should I use a Localize control instead of a Literal?,希望这会更有意义。
答案 1 :(得分:1)
正如你所引用的那样,他们完全相同。
唯一的区别是一个是Localize。而已。这将使其他类能够以不同方式处理Literal,如果他们愿意的话。但同样:它们是相同的。
它基本上只是一个标记类。
答案 2 :(得分:0)
http://msdn.microsoft.com/en-us/library/ms227668(v=vs.80).aspx
在MSDN链接中,它显示“Localize控件与Literal Web服务器控件相同,类似于Label Web服务器控件。”
您可以从链接中获取更多详细信息。