Localize与Literal之间的区别

时间:2012-08-10 01:17:28

标签: c# asp.net

我刚刚读到了Literal控件和Localize

之间的区别

我知道这个问题已经被问到here但是我提出的答案在我的案例中不起作用。

根据MSDN:

  

Localize控件继承自Literal控件,并且在各方面都与它相同。 Localize控件在设计时用于区分可以与其他静态文本本地化的静态文本。

我目前对LocalizeLiteral控件之间的理解是,前者在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输出

enter image description here

作为补充说明,我知道在使用资源时我可以使用隐式资源(使用本地资源时),在设计时使用默认值。例如:

    <asp:Label ID="Label1" runat="server" meta:resourcekey="Label1Resource1" 
        Text="Label"></asp:Label>

使用上面的代码,我按照预期在Visual Studio中获得了设计时呈现的文本 Label

那么LiteralLocalize控制之间的区别是什么?我缺少什么?

注意:我使用网站和Web应用程序进行了测试

3 个答案:

答案 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服务器控件。”

您可以从链接中获取更多详细信息。