1

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

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

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

谢谢指教。

4

2 回答 2

1

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

对于 ASP.NET Core,@inject IAbpSession AbpSession在 razor 视图中使用并直接使用它。

对于 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>()...在任何需要的地方使用。

于 2017-07-23T14:09:28.180 回答
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;
    }
}
于 2017-12-06T05:39:37.623 回答