Вы можете попробовать это -
- Без внедрения : Контроллер имеет объект запроса, который имеет тип HttpRequest, он содержит тип заголовка IHeaderDictionary, откуда вы будете иметь информацию браузера.
public class UploadFileController : Controller
{
[HttpGet]
public IActionResult Photo()
{
var brows = Request.Headers["User-Agent"].ToString();
return View();
}
[HttpPost]
public IActionResult Photo(UserViewModel userViewModel)
{
if (ModelState.IsValid)
{
}
return View(userViewModel);
}
}
IHttpContextAccessor Inject в контроллере : необходимо добавить одноэлементную службу типа, указанного в классе запуска, метод конфигурации
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
.Теперь вы готовы ввести в контроллер -
public class UploadFileController : Controller
{
private readonly IHttpContextAccessor httpContextAccessor;
public UploadFileController(IHttpContextAccessor httpContext)
{
this.httpContextAccessor = httpContext;
}
[HttpGet]
public IActionResult Photo()
{
var browser = httpContextAccessor.HttpContext.Request.Headers["User-Agent"].ToString();
return View();
}
[HttpPost]
public IActionResult Photo(UserViewModel userViewModel)
{
if (ModelState.IsValid)
{
}
return View(userViewModel);
}
}
IHttpContextAccessor Inject в представлении : если вы хотите иметь информацию о браузере в представлении, которое необходимо добавить в классе запуска, метод конфигурации
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
и внедрить IHttpContextAccessor.
@inject Microsoft.AspNetCore.Http.IHttpContextAccessor HttpContextAccessor
@{
ViewData["Title"] = "Upload Picture";
var browser = HttpContextAccessor.HttpContext.Request.Headers["User-Agent"].ToString();
}