4

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 サイトと Web アプリケーションを使用してテストしました

4

3 に答える 3

5

@Jupaol、コントロールが何をするのか正確にわかっているかどうかはわかりませんが<asp:Localize>、テキストをローカル言語に変換します。リテラルの代わりにローカライズコントロールを使用する必要があるのはいつですか?をご覧ください。そしてうまくいけば、それはもっと理にかなっているでしょう。

于 2012-12-28T15:03:52.753 に答える
1

あなたが引用したように、それらはすべての点で同一です

唯一の違いは、1つがローカライズであるということです。それでおしまい。これにより、必要に応じて、他のクラスがLiteralを異なる方法で処理できるようになります。しかし、繰り返しますが、それらは同一です。

本質的には単なるマーカークラスです。

于 2012-08-10T01:22:47.723 に答える
0

http://msdn.microsoft.com/en-us/library/ms227668(v=vs.80).aspx

MSDNリンクから、「LocalizeコントロールはLiteral Webサーバーコントロールと同じであり、LabelWebサーバーコントロールと同じです」と書かれています。

リンクから詳細を入手できます。

于 2012-08-10T01:24:03.660 に答える