C# ASP.NET Core3.0,如何将可枚举用户信息列表从控制器传递到布局页面(.cshtml) 一旦用户登录,线程将进行登录验证 如果数据库中存在登录名,系统将获取相关角色,并使用菜单项orders为特定角色分配操作 我已经在控制器中创建了一个菜单项列表,为了填充动态菜单项,我需要将值列表从控制器传递到布局页面 我的问题是,我无法将会话列表从控制器访问到布局页面 但是,只有一个值(字符串)可以传递,但列表我无法传递 有谁能给我回复一下如何将IEnumarableList从controller传递到.cshtml页面的会话
我将向您展示一个示例,说明如何在C# ASP.NET Core3.0,如何将可枚举用户信息列表从控制器传递到布局页面(.cshtml) 一旦用户登录,线程将进行登录验证 如果数据库中存在登录名,系统将获取相关角色,并使用菜单项orders为特定角色分配操作 我已经在控制器中创建了一个菜单项列表,为了填充动态菜单项,我需要将值列表从控制器传递到布局页面 我的问题是,我无法将会话列表从控制器访问到布局页面 但是,只有一个值(字符串)可以传递,但列表我无法传递 有谁能给我回复一下如何将IEnumarableList从controller传递到.cshtml页面的会话,c#,asp.net-core,C#,Asp.net Core,我将向您展示一个示例,说明如何在会话中存储和检索复杂对象,如IEnumerable: 在Startup.cs的Configure方法下,添加以下行: public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseSession(); } 在ConfigureServices方法下,添加以下行。您可以根据自己的需要设置超时: public void ConfigureServices(IServi
会话中存储和检索复杂对象,如IEnumerable
:
在Startup.cs的Configure方法下,添加以下行:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseSession();
}
在ConfigureServices方法下,添加以下行。您可以根据自己的需要设置超时:
public void ConfigureServices(IServiceCollection services)
{
//Added for session state
services.AddDistributedMemoryCache();
services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromMinutes(10);
});
}
要在.NET Core中的会话中存储复杂对象,请执行以下操作:
创建对象类型的模型类(例如Student
):
然后创建一个SessionExtension
helper,将复杂对象设置为JSON并检索为JSON:
public static class SessionExtensions
{
public static void SetObjectAsJson(this ISession session, string key, object value)
{
session.SetString(key, JsonConvert.SerializeObject(value));
}
public static T GetObjectFromJson<T>(this ISession session, string key)
{
var value = session.GetString(key);
return value == null ? default(T) : JsonConvert.DeserializeObject<T>(value);
}
}
要在会话中检索复杂对象,请执行以下操作:
var studentDetails= HttpContext.Session.GetObjectFromJson<Student>("StudentDetails");
int studentId= Convert.ToInt32(studentDetails.StudentId);
string studentName= Convert.ToString(studentDetails.StudentName);
实际上,上面的步骤很有帮助,但是这里需要您的编码来为开发人员找到答案。。!谢谢你,@Rahul Sharma,
var student= new Student();
student.StudentId= "1";
student.StudentName = "Rahul";
HttpContext.Session.SetObjectAsJson("StudentDetails", student);
var studentDetails= HttpContext.Session.GetObjectFromJson<Student>("StudentDetails");
int studentId= Convert.ToInt32(studentDetails.StudentId);
string studentName= Convert.ToString(studentDetails.StudentName);
@using Microsoft.AspNetCore.Http
@inject IHttpContextAccessor HttpContextAccessor
<h1>@HttpContextAccessor.HttpContext.Session.GetObjectFromJson<Student>("StudentDetails");</h1>