0

@Href がパスを正しく認識しない理由を尋ねる質問を書いていました。

例えば

@helper CSS(string cssFile, string media = "screen") {
    <link href="@Href("~/content/stylesheets/" + @cssFile)" rel="stylesheet" type="text/css" media="@media" /> 
}

リソースを見つけようとしてsereval js 404エラーをスローしています

  • http://localhost/コンテンツ
  • http://localhost/dashboard/content

そして決して私が欲しいもの:

  • http:// localhost/MySite/content

それで、私は興味深い部分を見つけました:@Url.Content代わりに@Hrefうまくいきます! どうして!?

したがって、これは大きな問題ではありません。問題は、App_Code @Url がコンテキストに存在しないことです。その時使えるもの。

4

1 に答える 1

1

MSDNはあなたの友達です。WebPageRenderingBase.Hrefメソッドから:

派生クラスでオーバーライドされると、指定されたパラメーターを使用してURLを作成します。

一方、 UrlHelper.Contentメソッドから:

仮想(相対)パスをアプリケーションの絶対パスに変換します。

パスのチルダはそれを仮想パスにしますが、これは明らかに@Href()が理解していません。

于 2012-05-11T21:47:19.403 に答える