これは簡単な質問のようですが、私の人生の答えを見つけることはできません。ルート相対URL(~/my/path
)をコントローラおよび/またはモデルの仮想パス(/mywebsite/my/path
)に変換するにはどうすればよいですか?ASP.NET MVC3コントローラまたはモデルの仮想パスへのルート相対パス
ビューでは、簡単に行うことができます。ちょうど@Url.Content("~/my/path/")
を呼び出してください。コントローラーの物理的なパスを取得するのは、Server.MapPath("~/my/path")
を使用するだけで簡単です。しかし、私はコントローラ内で仮想パスを取得する方法を理解することはできません。
私の主な問題は、返されるJSONオブジェクトに渡すイメージのルート相対パスがあることです。ほとんどの場合、これはjavascriptによって読み込まれ、どこかのページに置かれ、私は@Url.Content
をjavascriptコードで使用することはできません。また、場合によっては、このJSONオブジェクトは、~
の意味を理解しない外部アプリケーションによって使用されます。あなたはこのような何もしないモデルでは
public ActionResult Foo()
{
string url = Url.Content("~/my/path");
...
}
:あなたはUrlプロパティを使用することができ、コントローラで
コントローラでUrl.Contentも正常に動作するはずです(文字列が返されます)。その名前空間System.Web.Mvc – StuartLC
なぜコントローラへの仮想パスが必要ですか? – Phill
@Phill - 私は実際にJSONオブジェクトで返すイメージへの仮想パスが必要です。私は質問を更新します。 –