2011-12-07 3 views
0

カミソリで画像のパスを格納する変数を使用します私はこのような動的イメージパスを構築するための機能を使用Url.Content

function() { 
      var name = $(this).attr('id') + '_o'; 
      var newsrc = '../../Content/HomePage/' + name + '.png'; 

をそして私はにUrl.Contentレイザーを使用してNEWSRCを割り当てます画像タグをそのソースとして使用します。

$(this).attr('src', '@Url.Content(newsrc)'); 

しかし、VSは私が赤い線が がどのように私はUrl.Contentと一緒に変数を使用することができます。.. NEWSRCは現在のコンテキスト内に存在していないことを言って示しています。だから、私はこのような何かをしたいですか?

(注:私は、この内部のスクリプトタグを使用しています...)

EDIT:アイデアが解決しそこUrl.Contentを使用し、おそらくバックドアコントローラにNEWSRCを渡します、私の心に来ますURLとそれを戻す?実現可能ですか?

すべてのヘルプはあなたが直接Asp.Netコードにjavascriptの変数を渡すようにしようとしている。..

答えて

0

問題は私の上級者によって解決されました。 web.config(WebDirectory)に余分なappsettingsを作成し、その値をフォルダパスとして割り当てます。

その後、私のコードで、私は簡単に使用して、私のURLを構築することができます。

System.Configuration.ConfigurationManager.AppSettings["WebDirectory"].ToString()... 

ちょうどここに私の解決策を共有し、それが将来的に誰かを助けることを願っています。ありがとう。

0

を理解されるであろう - ことは不可能です。

あなたは@Url.Content()を削除し、ちょうどあなたのJavaScriptで相対パスを使用する必要があります:

$(this).attr('src', newsrc); 

または代わりに、フォルダの場所を取得し、このように、JavaScriptでファイル名を追加するUrl.Content()を使用します。

var name = $(this).attr('id') + '_o'; 
var newsrcFolder = '@Url.Content('../../Content/HomePage/')'; 
var newsrc = newsrcFolder + name + '.png'; 
$(this).attr('src', newsrc); 
+0

展開時に相対パスが機能しないため、@ Url.Content()を削除できませんでした。そして、あなたの2番目の提案を試してみました。 – shennyL

1

このテクニックを使用してJavaScript変数にパスを送信すると、パスではなく-1が表示されます。コードは以下の通りです。

var path= <%= ConfigurationManager.AppSettings["FileManager"] %>;