2011-10-25 7 views
0

内のURLだから私は、私はこれを行う画像のURLを解決するためにseperareのjsファイル内のいくつかのJavascript(jquerySliderMenu.js)MVCの解決.jsファイル

を持っている: VAR imgUrl = $のURL .resolve( "〜/ Assets/Javascript/Img");

作品は(6 IIS)

が、PROD上

は(7.5 IIS)、それが原因

https://XXXX.org/Home.mvc.aspx/~/Assets/Javascript/Img/right.gif

代わりの

https://XXXX.org/Assets/Javascript/Img/right.gif

に解決、DEVで見つけますエラー。

IT担当者が.MVCを追加する必要があることを覚えています。しかし、私は彼らがなぜそれをやったかを思い起こさせることはできません。

すべてに.mvc.aspxを追加する設定で問題を解決するには、より良い方法がありますか? (そして、その設定何てください?)

Thansk、

Eric-

+0

なぜ私はIIS 6でうまくいくのかわかりません。それほど意味がありません。 JavaScriptはMVCフレームワークによって提供されないため、〜を実際の場所に変換することはできません。 –

答えて

9

あなたはytour JavaScriptファイル内の任意のURLを解決しようとするべきではありません。 HTMLヘルパーを生成するには、URLヘルパーを使用する必要があります。 Javascriptは目立たずにそれらを読み込んで使用します。

控えめなAJAXとクライアント側の検証と同じ方法で、HTML5のdata- *属性を使用できます。だから、例えばあなたは、あなたのDOMあなたのJavaScriptで

<div id="foo" data-url="@Url.Content("~/Assets/Javascript/Img")">some contents</div> 

し、その後で次の要素を持っていると仮定してみましょう:

var imgUrl = $('#foo').data('url'); 

か、たとえば控えめアンカーやフォームをAJAXifyingされている場合には、もちろん、Url/Htmlヘルパーで生成された対応するDOM要素にhrefまたはactionの属性を直接取得して、ルートを尊重した適切なURLを確保することができます。

関連する問題