[解決済み] ASP.NET CoreのServer.MapPathに相当するものは何ですか?
2023-02-18 14:22:07
質問
コントローラにコピーしたいコードに次のような行がありますが、コンパイラは次のような文句を言います。
名前 'Server' は現在のコンテキストに存在しません。
var UploadPath = Server.MapPath("~/App_Data/uploads")
ASP.NET Coreで同等のことを実現するにはどうしたらよいでしょうか。
どのように解決するのですか?
UPDATE: IHostingEnvironmentは非推奨です。以下のアップデートを参照してください。
Asp.NET Core 2.2以下では、ホスティング環境はインターフェースを用いて抽象化されています。 IHostingEnvironment
この ContentRootPath プロパティは、アプリケーション・コンテンツ・ファイルの絶対パスへのアクセスを提供します。
プロパティを使用することもできます。 WebRootPath というプロパティも使用できます。これは、ウェブサーバのルートパス (デフォルトでは www フォルダ) にアクセスしたい場合に使用します。
この依存関係をコントローラに注入し、以下のようにアクセスすることができます。
public class HomeController : Controller
{
private readonly IHostingEnvironment _hostingEnvironment;
public HomeController(IHostingEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
}
public ActionResult Index()
{
string webRootPath = _hostingEnvironment.WebRootPath;
string contentRootPath = _hostingEnvironment.ContentRootPath;
return Content(webRootPath + "\n" + contentRootPath);
}
}
UPDATE - .NET CORE 3.0 およびそれ以上
IHostingEnvironmentは、@で指摘されたように、.NET Core 3.0で廃止されました。 amir133 . 使用するのは IWebHostEnvironment の代わりに IHostingEnvironment . その回答を参照してください。 の下にある .
Microsoft は、これらのインターフェイスの間でホスト環境のプロパティをきちんと分離しています。以下のインターフェイスの定義を参照してください。
namespace Microsoft.Extensions.Hosting
{
public interface IHostEnvironment
{
string EnvironmentName { get; set; }
string ApplicationName { get; set; }
string ContentRootPath { get; set; }
IFileProvider ContentRootFileProvider { get; set; }
}
}
namespace Microsoft.AspNetCore.Hosting
{
public interface IWebHostEnvironment : IHostEnvironment
{
string WebRootPath { get; set; }
IFileProvider WebRootFileProvider { get; set; }
}
}
関連
-
[解決済み] Razor View throwing "The name 'model' does not exist in the current context".
-
[解決済み] ファイルまたはアセンブリ 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821' を読み込めません でした。
-
[解決済み] クライアントから危険な可能性のあるRequest.Formの値が検出された
-
[解決済み] ASP.NET CoreでカスタムのAuthorizeAttributeを作成する方法は?
-
[解決済み] ConfigureServices内からASP.NET Core DIでインスタンスを解決する
-
[解決済み] Server.MapPath("."), Server.MapPath("~"), Server.MapPath(@"\"), Server.MapPath("/"). この違いは何ですか?
-
[解決済み] ASP.NET Identity - HttpContextにはGetOwinContext用の拡張メソッドがありません。
-
[解決済み】ASP.NET MVCでクライアントのIPアドレスを取得するにはどうすればいいですか?
-
[解決済み】ASP.NET MVC - コントローラーからApp_Dataフォルダーの絶対パスを検索する
-
[解決済み] コントローラから特定のステータスコードと内容を返すには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
NET6新機能 - 暗黙の名前空間参照
-
ASP.NET CoreでURLを設定する5つの方法
-
Net Core HttpClient処理 レスポンス圧縮の詳細
-
名前 'xxx' が現在のコンテキストに存在しない エラー解決方法の1つ
-
[解決済み] Server.MapPath("."), Server.MapPath("~"), Server.MapPath(@"\"), Server.MapPath("/"). この違いは何ですか?
-
[解決済み】ASP.NETのWebサイト全体のブラウザキャッシュを無効にする
-
[解決済み】ASP.NET IdentityのIUserSecurityStampStore<TUser>インターフェースとは何ですか?
-
[解決済み] ASP.Net MVCとWebフォームを比較する最大のメリット
-
[解決済み] Visual Studio 新しいブラウザを開けない
-
[解決済み] ASP.NET_SessionId + OWIN Cookieがブラウザに送信されない。