不知道您的全局意思是什么,但是ControllerBase
该类的扩展方法将使其在您的所有控制器中都可以访问:
public static class ControllerExtensions
{
public static Guid GetCurrentClientID(this ControllerBase controller)
{
return (Guid)controller.ControllerContext.HttpContext.Session["ClientID"];
}
}
现在在每个控制器中,您可以访问它:
public ActionResult Foo()
{
Guid id = this.GetCurrentClientID();
...
}
如果您希望它更加全局可用,请将其作为 HttpContextBase 类的扩展方法:
public static class ControllerExtensions
{
public static Guid GetCurrentClientID(this HttpContextBase context)
{
return (Guid)context.Session["ClientID"];
}
}
现在,您可以在任何地方访问 HttpContext(在 ASP.NET 应用程序中几乎无处不在),您只需使用扩展方法。例如在视图中:
@Html.ActionLink("foo link", "foo", new { clientid = Context.GetCurrentClientID() })