Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET Core3.0,如何将可枚举用户信息列表从控制器传递到布局页面(.cshtml) 一旦用户登录,线程将进行登录验证 如果数据库中存在登录名,系统将获取相关角色,并使用菜单项orders为特定角色分配操作 我已经在控制器中创建了一个菜单项列表,为了填充动态菜单项,我需要将值列表从控制器传递到布局页面 我的问题是,我无法将会话列表从控制器访问到布局页面 但是,只有一个值(字符串)可以传递,但列表我无法传递 有谁能给我回复一下如何将IEnumarableList从controller传递到.cshtml页面的会话_C#_Asp.net Core - Fatal编程技术网

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>