دسته بندی ها
16:40 1398/07/30

ارسال مدل به سشن (Session) در Asp.net core

مشخصات سوال کننده :
کاربر : Hamidyeza     امتیاز کاربر : 15     رتبه کاربر : 48
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 4904
هوش مصنوعی

پاسخ هوش مصنوعی

در ASP.NET Core، شما می توانید با استفاده از Session لیست مدل ها را ذخیره کنید. ابتدا، باید لیست مدل خود را به رشته (string) تبدیل کنید، معمولاً از روش JsonConvert.SerializeObject استفاده می شود. سپس می توانید این رشته را در Session ذخیره کنید. برای خواندن آن دوباره، می توانید از JsonConvert.DeserializeObject استفاده کنید.

در اینجا یک مثال از نحوه انجام این کار آورده شده است:

using Microsoft.AspNetCore.Http;
using Newtonsoft.Json;
using System.Collections.Generic;

public class YourModel
{
    public int Id { get; set; }
    public string Name { get; set; }
}

// ذخیره کردن لیست مدل در سشن
public void SaveListToSession(HttpContext httpContext, List modelList)
{
    var jsonString = JsonConvert.SerializeObject(modelList);
    httpContext.Session.SetString("ModelList", jsonString);
}

// خواندن لیست مدل از سشن
public List GetListFromSession(HttpContext httpContext)
{
    var jsonString = httpContext.Session.GetString("ModelList");
    return jsonString == null ? new List() : JsonConvert.DeserializeObject>(jsonString);
}
به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : pedram_khan 23:24 1398/07/26

سلام

تا اونجایی که من می دونم کوکی ها و سشن ها برای نگهداری اطلاعات ساده مثل یک رشته استفاده میشن و نمیشه مدل های پیچیده یا List ها رو در Session ها ذخیره کرد. مگر اینکه مدل شما یک مدل ساده و شامل یک ردیف اطلاعات باشه و لیستی از اطلاعات نباشه. در این صورت باید برای هر فیلدی که در مدل خودتون دارید یک سشن تعریف کنید و مقدارش رو در سشن نگهداری کنید.

 

تعریف سشن در Asp.net core

HttpContext.Session.SetString("Session_name","Value");

 

به عنوان مثال اگر شما بخواهید نام و نام خانوادگی و سن یک کاربر رو در سشن تعریف کنید کد زیر میشه

HttpContext.Session.SetString("firstName","hasan");
HttpContext.Session.SetString("family","rezaie");
HttpContext.Session.SetString("age","25");

 

این لینک در مورد سشن ها اطلاعات بیشتری رو میده بهتون.

موفق باشید

به این پاسخ امتیاز بدهید    0
امتیاز: 277 رتبه: 6
پاسخ دهنده : hamid_b 21:06 1401/02/24

برای نگهداری اطلاعات پیچیده مثل List ها و جابجایی اونها میتونید از ViewBag در Asp.net Core استفاده کنید.

ViewBag.myList = _context.Users.ToList();

در کد بالا لیستی از کاربران را در یک ViewBag نگهداری کرده ایم و میتونیم ازش استفاده کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: 518 رتبه: 4
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود