ASP.NET Core中提供了一個IHttpContextAccessor接口,HttpContextAccessor 默認實現了它簡化了訪問HttpContext。html
它必須在程序啓動時在IServicesCollection中註冊,這樣在程序中就能獲取到HttpContextAccessor,並用來訪問HttpContext。app
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
下面來實際作一個操做,獲取 HttpContextAccessor。框架
新建一個ASP.NET Core Web 應用程序,選擇Web 應用程序。 身份驗證勾選爲不進行身份驗證。ide
而後在HomeController 加入以下代碼:ui
public class HomeController : Controller { private IHttpContextAccessor _accessor; public HomeController(IHttpContextAccessor accessor) { _accessor = accessor; } public IActionResult Index() { var httpcontext = _accessor.HttpContext; return View(); } }
這樣就能獲取到 HttpContextspa
運行之後就能獲取到 HttpContext 對象。上面也說到,必須在程序啓動時注入才能獲取到HttpContextAccessor。code
3、實現HttpContext的全局使用。htm
public class MvcContext {public static IHttpContextAccessor Accessor; public static HttpContext GetContext() { return Accessor.HttpContext; } }
在配置中保存IHttpContextAccessor,用於獲取上下文對象
public void Configure(IApplicationBuilder app, IHostingEnvironment env,IServiceProvider serp, IHttpContextAccessor accessor) { MvcContext.Accessor = accessor; if (env.IsDevelopment()) { app.UseBrowserLink(); app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles(); }
更多使用說明能夠參考:http://www.cnblogs.com/linezero/p/6801602.htmlblog
更多:
EF Core中執行Sql語句查詢操做之FromSql,ExecuteSqlCommand,SqlQuery
Asp.Net Core IIS發佈後PUT、DELETE請求錯誤405.0 - Method Not Allowed 由於使用了無效方法(HTTP 謂詞)