Razor url.contentに画像パスを保存する変数を使用します
-
29-10-2019 - |
質問
関数を使用して、このように動的に画像パスを構築しました。
function () {
var name = $(this).attr('id') + '_o';
var newsrc = '../../Content/HomePage/' + name + '.png';
そして、Razorを使用してNewsRCを割り当てたいと思います url.content そのソースとしての画像タグに。だから、私はこのようなことをしたい:
$(this).attr('src', '@Url.Content(newsrc)');
しかし、newsRCは現在のコンテキスト内には存在しないと言っているレッドラインを見せてください。url.contentとともに変数を使用するにはどうすればよいですか?
(注:私はこの内部スクリプトタグを使用しています...)
編集:アイデアが私の頭に浮かびます。おそらく、バックドアはnewsRCをコントローラーに渡し、url.contentを使用してURLを解決して渡すでしょうか?実行可能ですか?
どんな助けも感謝します。
解決 3
私の先輩によって解決された問題。 web.config(webdirectory)で追加のappsettingsを作成し、フォルダーパスとして値を割り当てます。
次に、コードでは、以下を使用してURLを簡単に作成できます。
System.Configuration.ConfigurationManager.AppSettings["WebDirectory"].ToString()...
ここで私のソリューションを共有するだけで、将来誰かを助けることを願っています。ありがとう。
他のヒント
この手法を使用してJavaScript変数にパスを送信すると、パスの代わりに-1が表示されます。コードは以下のとおりです。
var path= <%= ConfigurationManager.AppSettings["FileManager"] %>;
JavaScript変数をASP.NETコードに直接渡そうとしていますが、これは不可能です。
削除する必要があります @Url.Content()
そして、JavaScriptの相対パスを使用するだけです。
$(this).attr('src', newsrc);
または、使用してください Url.Content()
フォルダーの場所を取得し、次のようなJavaScriptにファイル名を追加するには:
var name = $(this).attr('id') + '_o';
var newsrcFolder = '@Url.Content('../../Content/HomePage/')';
var newsrc = newsrcFolder + name + '.png';
$(this).attr('src', newsrc);
所属していません StackOverflow