マスターページでcontentplaceholderコントロールを使用して、コンテンツエディタがdivの背景として使用する画像のURLを指定できるようにしています。ASP.NET:エディタ/デザイナのエラーなしで属性値にcontentplaceholderを使用するにはどうすればよいですか?
<div id="content-left-column"
style="background-image: url('<wc:UrlContentPlaceHolder runat='server' ID='leftContentBackgroundUrl'></wc:UrlContentPlaceHolder>');">
プレースホルダは、同様のコンテンツページで参照されています
<asp:Content ID="Content1" ContentPlaceHolderID="leftContentBackgroundUrl" runat="server">/img/left-content.jpg</asp:Content>
ページがうまく、このアプローチを使用してレンダリングします。しかし、ソースビューでコンテンツページを見ると、ContentPlaceHolderId属性値に下線が引かれ、「現在のマスターページに「leftContentBackgroundUrl」が見つかりませんでした」という警告が表示されます。
デザインビューは、このエラーのためにコンテンツページを表示しません。
Visual Studioエディターとデザイン面にエラーが報告されないように、属性値にContentPlaceHolderを使用する方法はありますか?
*私はこのアプローチの問題を認識しています。コンテンツエディタがスペースに入れたり、キャリッジが戻るか、ビジュアルスタジオでドキュメントフォーマットを実行すると、レンダリングされた属性値は破損します。 ContentPlaceHolderのサブクラスを作成して、その値をトリムし、ResolveClientUrlを使用してこれらの問題に対処しました。議論のために、通常のContentPlaceHolderコントロールに影響を与える問題について説明しました。
次のスタックオーバーフローの質問は、ContentPlaceHolderを属性値と共に使用できますが、デザインサーフェイスの問題には対処していないという事実に対処しています。 Why can't I use a ContentPlaceholder inside HTML attributes in ASP.NET?
質問に固有の回答を提供し、私が投稿した解決策のインスピレーションを提供してくれてありがとうと感謝したい。私はあなたが質問に答える時間を取ってくれたことに信用を与えたいと思っているので、私は葛藤していますが、本当の答えは私が投稿したものです。あなたは答えとしてどれをマークするべきだと思いますか?いずれの場合も、あなたの答えを+1しました。 –
質問に最もよく答えると思われる回答を受け入れる必要があります。それがあなたのものなら、それはまあまあです。私は助けることができてうれしいです。 – magnattic