2011-05-16 2 views
5

リソースタグの代わりにインライン書き込みタグを使用する利点/欠点はありますか?例:すべてのMSDNの例に見られるようASP.NETのインラインタグのグローバリゼーションの違い

<%=Resources.Site.SampleString %> 

リソースタグ(発現タグ):

<asp:Literal id="Literal1" runat="server" text="<%$ Resources:Site, SampleString %>" /> 

私が使用する最初のオプションがはるかに容易見つけ、それがインテリセンスを持っていますが、多分それは勝ちました同じ機能を果たすか?

答えて

5

これらのメソッドはまったく同じように機能します。後者は単に最初のものを呼び出します。強く型付けされたリソースへのアクセスコードがバックグラウンドで生成されている理由があります。したがって、あなたはどんな方法でもお使いいただけます。

ところで、別の方法 - meta:resourcekey attributeを使用することもあります。だからあなたは書くことができるはずです:

<asp:Literal id="Literal1" runat="server" 
      meta:resourcekey="SampleString" text="Default one" /> 

そしてそれは全く同じに動作するはずです。

暗黙ローカライゼーションのEDITです。

私が言ったことを忘れてしまったのは、メタ:resourcekeyを使って特定の条件を満たす必要があることです。条件は以下のとおりです。

  • 値は、App_LocalResourcesからそのための関連リソースファイルを取られ
  • 関連リソースファイル名を存在する必要があり、たとえば、pagename.resxでなければならない:Default.aspx.resx、Default.aspx.es .resx
  • リソースファイルにはresourcekey.propertynameの形式のキー(SampleString.Text、SampleString.IDなど)が含まれている必要があります(ただし、コントロールIDはローカライズしません)。
  • リソースが生成されるため、上記の不変のリソースファイル(Default.aspx.resx)に存在する必要があります。または、ローカライズされません。
+0

これはApp_Globalリソースの値を取得しますか? (またはローカル) – davidsleeps

+0

これはApp_LocalResourcesから取得されたもので、暗黙のローカリゼーションは具体的なページに関係しています。私の編集を参照してください。 –

1

しばらくして<%=Resources.Site.SampleString %>メソッドにデザイナーサポートがありません(わかりました)。これは私を気にしませんが、それは違いです(将来の読者のために)。

デザイナーのサポートが必要な場合や必要な場合は、2番目のオプションが必要です。

関連する問題