web-dev-qa-db-ja.com

MVCビューでUrl.Content()またはResolveUrl()を使用する必要がありますか?

このようなコードを作成する場合:

_<script type="text/javascript" src="<%=ResolveUrl("~/js/js.js")%>"></script>
_

または

_<input type="image" src="<%=ResolveUrl("~/img/submit.png")%>" />
_

_Url.Content_またはResolveUrl()を使用する必要がありますか?違いは何ですか?

21
Michael Haren

IIS MVCアプリケーション内でURL書き換えを使用している場合、たとえば内部的に http://yoursubdomain.example.com/MyController/MyActionhttp://hosted.example.com/yoursubdomain/MyController/MyAction 、Url.Content()は正しいサブドメイン相対リンクを生成します。ResolveUrl()はこの状況で誤ったリンクを生成します。

30
Levi

Url.Contentは通常のように、よりMVCっぽいです。 ResolveUrl ASP.NETの開始以来存在しています。

14
Darin Dimitrov

サイトルートをローカル変数にキャプチャして再利用することを好みます

<% var siteroot = Url.Content("~/") %>

<script type="text/javascript" src="<%: siteroot %>Script/jquery-1.4.1.js"></script>
<script type="text/javascript" src="<%: siteroot %>Script/jquery.validate.js"></script>

数ミリ秒節約できるはずです:)

12
c.sokun