MVC ASP.NET中的HttpContext.Current和Controller.Context之间的区别
我正在开发一个MVC ASP .NET应用程序。 我对这两个都比较陌生。
在一个控制器中,我试图获取当前用户的日志,对此,似乎有两种方法来做到这一点:
System.Web.HttpContext.Current.User.Identity.Name
要么
HttpContext.User.Identity.Name
这些有什么区别? 据我可以告诉内MVC框架控制器有当前HttpContext存储为一个属性,所以这些方法是相同的。 那是对的吗?
是的,他们通常是相同的。 但是,如果你正在使用额外的线程,他们将不会; System.Web.HttpContext.Current
是线程静态的。
控制器提供的上下文(而不是静态的HttpContext.Current)是可嘲弄的。 如果你对unit testing你的代码感兴趣,创build一个模拟ControllerContext并在Controller上设置它比通过HttpContext.Current更容易。 否则,ControllerContext.HttpContext指向与HttpContext.Current相同的数据。
- 没有types为“IEnumerable <SelectListItem>”的ViewData项具有键“xxx”
- 在绑定上格式化date(ASP.NET MVC)
- Html5 data- *与asp.net mvc TextboxFor html属性
- 没有MediaTypeFormatter可用于从媒体types为“text / plain”的内容读取“String”types的对象,
- ASP.NET MVC控制器可以返回一个图像吗?
- 如何调用另一个控制器操作从Mvc中的控制器
- 有没有解决ASP.NET MVC的ContactsManager教程中的dependency injection循环问题的好方法?
- 淘汰赛+ mvc 3 +validation
- 如何lockingASP.NET MVC中的path?