如何在MVC视图中检索AbpSession

时间:2017-07-21 21:10:20

标签: aspnetboilerplate

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

我尝试过会话,或访问注入了会话的控制器,但是没有办法让currentSession获取userId和其他属性。

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

感谢您的建议。

2 个答案:

答案 0 :(得分:1)

我建议你在控制器中获取所需的值,然后通过viewmodel传递给视图。但是,如果您需要访问AbpSession,则根据您使用的ASP.NET版本,您有不同的方法。

对于ASP.NET Core,请在剃刀视图中使用@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>()...

答案 1 :(得分:0)

根据上面hikalkan的建议,此处是将其添加到课程[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;
    }
}