2

やあ、

次のようなアドレスを取得しました: ~/Content/Files/AdImages/20/20_thumb.jpeg、これを解決する必要があります。これは、Control.ResolveUrl() を使用して ASP.net で行われました。

この記事http://stephenwalther.com/blog/archive/2009/02/18/asp.net-mvc-tip-47-ndash-using-resolveurl-in-an-html.aspxによると、何かを使用する必要がありますこのような :

urlHelper.Content("~/Content/Files/AdImages/20/20_thumb.jpeg")

ただし、これは次の URL を返します: /Content/Files/AdImages/20/20_thumb.jpeg ソリューションのルートにない場合でも (コンテンツはルートに配置されます)?

どうすればこれを解決できますか?

これは、html ヘルパー拡張内からのものであることに注意してください。

//スノージム

4

2 に答える 2

3

~ の仕事は、常にルートに解決されるため、正しい動作が見られます。これを現在のパスに相対的にしたい場合は、パスを ~ または / で開始しないでください。

于 2010-09-19T12:27:09.610 に答える
3

ええ、~ は asp.net では mvc と同じようには機能しません。代わりに、最良のオプションは ~ を次のように置き換えることです。

Request.Url.GetLeftPart(UriPartial.Authority)

したがって、代わりに:

urlHelper.Content("~/Content/Files/AdImages/20/20_thumb.jpeg")

使用する

urlHelper.Content( Request.Url.GetLeftPart(UriPartial.Authority) + "/Content/Files/AdImages/20/20_thumb.jpeg")
于 2011-02-19T23:37:42.137 に答える