私はMVC 2でASP.NETを使用しており、ローカルファイルURLをサーバーアドレスに変換するのに問題があります。それはかなりシンプルで一般的な仕事のように見えるだろうが、Googleの検索は私に良い答えを与えてくれない。 (おそらく私は検索で吸う)asp.netのサーバー上でローカルファイルのhttp urlパスを取得します
私はビュー内のHTMLフォームからファイルを取り出し、それをディスクに保存するコントローラを持っています。このファイルの実際のURLをビューに戻す必要があります。どのような方法を使用しても、私はいつもhttpパスの代わりにファイルのローカルパスを持つ文字列を取得します。
私は、プロジェクトがデプロイされた後にURLがhttpアドレスに変換される可能性があると思っていますが、何かをハードコードすることなくデバッグするには本当にサーバーアドレスが必要です。
は、いくつかのコントローラメソッドで、次の例を考えてみましょう:
string url = Url.RequestContext.HttpContext.Server.MapPath("~/Content/Files/" + Path.GetFileName(file.FileName));
// outputs: "C:\\Users\\xxx\\Documents\\Visual Studio 2010\\Projects\\[ProjectName]\\Content\\Files\\file.png"
// whereas i'd like something like "http://localhost/Content/Files/file.png" instead
任意のアイデア?
を 'Server.MapPath'は、ローカルファイルを返し、ローカルファイルへのURLをマップします。それを使用しないでください。 – Oded