有人知道如何在mvc视图中检索ApbSession吗?
我尝试过会话,或访问注入了会话的控制器,但是没有办法让currentSession获取userId和其他属性。
Asp.net会话无效,因为ApbSession不能使用它。
感谢您的建议。
答案 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;
}
}