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