如何在 MVC 视图中检索 AbpSession

how retrieve AbpSession in a MVC view

有人知道如何在 mvc 视图中检索 ApbSession 吗??

我已经尝试使用会话,或访问注入了会话的控制器,但是无法让 currentSession 获取 userId 和其他属性。

Asp.net 会话无效,因为 ApbSession 不能使用它。

谢谢指教。

我建议您在控制器中获取所需的值,然后通过视图模型传递给视图。但是,如果您需要访问 AbpSession,您可以使用不同的方法,具体取决于您使用的 ASP.NET 版本。

对于ASP.NET核心,在razor视图中使用@inject IAbpSession AbpSession,直接使用

对于 ASP.NET MVC 5.x,在您的视图库中使用 属性 注入(YourProjectNameWebViewPageBase 就像这样:https://github.com/aspnetboilerplate/module-zero-template/blob/master/src/AbpCompanyName.AbpProjectName.WebMpa/Views/AbpProjectNameWebViewPageBase.cs)。或者,您可以在任何需要的地方使用 IocManager.Instance.Resolve<IAbpSession>()...

根据上面的建议,这里是在class中添加的代码 [YourApplication]WebViewPageBase<TModel>:

public abstract class YourAppWebViewPageBase<TModel> : AbpWebViewPage<TModel>
{
    // Gp
    public IAbpSession AppSession { get; private set; }

    protected YourAppWebViewPageBase()
    {
        LocalizationSourceName = YourAppConsts.LocalizationSourceName;
        // Gp - added the AbpSession in the view
        AppSession = Abp.Dependency.SingletonDependency<IAbpSession>.Instance;
    }
}