2011-08-09 15 views
2

私はC#コードで使用している厳密な型変換を使用するために、いくつかのASP.NETコードを変更しようとしています。現在のコードは次のようになります。サーバータグで強く型付けされたリソースを使用するにはどうすればよいですか?

<asp:HyperLink runat="server" Text='<%$ Resources:Blah1,Blah2 %>' /> 

私はそれは次のようになりたいのですが:

<asp:HyperLink runat="server" Text='<% Translations.Blah1.Blah2 %>' NavigateUrl="#" /> 

理由は、我々は最初のケースで使用されるカスタムプロバイダを持っていることであり、それはdoesnの」 aspnet_compilerでうまくやっていますが、コンパイルされないaspx/ascxファイルに起因する問題を取り除こうとしています。私は(上記のように)コードを変更した場合

はしかし、私はこのエラーを取得する:

Server tags cannot contain <% ... %> constructs. 

は<%#データバインド%>タグを使用して、確実にすることなく、これを達成する方法はありますデータバインドは呼ばれますか? <%= %>を使用しても動作しません(おそらく応答ストリームに直接書き込むため、プロパティを設定する必要があるため)。

EDIT:私はコードビハインドファイルに移動することはオプションではありません、プログラム的にファイルの何千もこれに必要:(

答えて

0

私は見つけることができる唯一のソリューションは、オープン/終了タグの間でリソースを置くことです。これは、唯一のいくつかのコントロールで動作します。 、他のものは変更する必要があります。

+0

答えはまだ真ですか?私は内部HTMLの代わりにタグの属性を使って解決できるかどうか、似たような気がします。 – MADCookie

+0

MADCookie

+0

@MADCookieのような暗黙的なリソース表現を試したことがありますか? html "(コンテンツ)、そしてこれがうまくいかない場合は、コードから設定します(ただし、これは嫌いです)。私たちは<%$ Resourcesと同じ理由で、メタ:ResourceKeyを避けようとしていました。 –

0

ハイパーリンクにIDを付け、そしてからのtextプロパティを設定。コードビハインド

エクストラ利点:あなたはプレゼンテーションから、あなたのロジックを分割し、それぞれの値いっぱい

+0

残念ながら、私はこれをプログラム的に(何千ものファイルに)実行する必要があるため、これは適切なオプションではありません:-( –

+0

このコードについては何がありますか?そして、あなたにはこのような時間がかかりますが、それはもっと良い解決策です。 (runatを使用して)サーバーサイドタグを使用しているため、これが可能かどうかわかりません。私は自分自身の前に、自分のリンクやスクリプトを埋めるためにナゲットをコード化しようとすると、これに問題がありました。リンク参照では機能しましたが、スクリプト参照では機能しませんでした。 – Rickjaah

+0

私はこれらの変更を数千のファイルにわたってプログラム的に行う必要があります。これを行うコードを適切な場所(適切なタイミング)に注入するコードビハインドファイルを開いて解析することは簡単な作業ではありません。 –

関連する問題