通用Web,.net5.0. IServiceProvider未包含HostingEnvironment的定义

通用Web,.net5.0.
IServiceProvider未包含HostingEnvironment的定义

如果你使用的是 .NET 5.0,那么 HostingEnvironment 已经被移除了。相反,你需要使用 IWebHostEnvironment 来获取 Web 主机的环境信息。

要使用 IWebHostEnvironment,你需要在应用程序的 Startup 类的构造函数中注入它,如下所示:

csharp
Copy code
public class Startup
{
private readonly IWebHostEnvironment _webHostEnvironment;

public Startup(IWebHostEnvironment webHostEnvironment)
{
    _webHostEnvironment = webHostEnvironment;
}

// ...

}
在此之后,你可以在 Startup 类中的任何地方使用 _webHostEnvironment 实例来获取 Web 主机的环境信息。

如果你需要在其他类中访问 IWebHostEnvironment,你可以将其注入到该类的构造函数中,就像在 Startup 类中一样:

csharp
Copy code
public class MyService
{
private readonly IWebHostEnvironment _webHostEnvironment;

public MyService(IWebHostEnvironment webHostEnvironment)
{
    _webHostEnvironment = webHostEnvironment;
}

// ...

}
然后,在应用程序的 ConfigureServices 方法中,将 MyService 添加到服务容器中:

csharp
Copy code
public void ConfigureServices(IServiceCollection services)
{
// …
services.AddTransient();
// …
}

private readonly IWebHostEnvironment _webHostEnvironment;

public HomeController(ILogger<HomeController> logger, MovieDbContext context, IWebHostEnvironment webHostEnvironment)
        {
            _logger = logger;
			_context = context;
			_webHostEnvironment = webHostEnvironment;
		}
[HttpPost]
		public async Task<IActionResult> Add(Movie movie)
		{
			if (ModelState.IsValid)
			{
				if (movie.PosterFile != null)
				{
					string uploadsFolder = Path.Combine(_webHostEnvironment.WebRootPath, "images");
					string uniqueFileName = Guid.NewGuid().ToString() + "_" + movie.PosterFile.FileName;
					string filePath = Path.Combine(uploadsFolder, uniqueFileName);
					using (var fileStream = new FileStream(filePath, FileMode.Create))
					{
						await movie.PosterFile.CopyToAsync(fileStream);
					}
					movie.Poster = "/images/" + uniqueFileName;
				}
				_context.Movies.Add(movie);
				await _context.SaveChangesAsync();
				return RedirectToAction(nameof(Index));
			}
			return View(movie);
		}
<div class="form-group">
        <label for="poster">Poster</label>
        <input type="file" class="form-control-file" id="poster" name="PosterFile">
    </div>
  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值