如何在Core 6中"HttpContext.Session.Set"将列表发送到另一个剃须刀片页面?



我保存了一些行数据在一个名为">viewListNextWeek的列表中"。我想把这个列表发送到下一个razor页面,在那里我通过

重定向到它
return RedirectToPage("../Food/nextWeekFood");

基于此,我尝试了

HttpContext.Session.Set<List<reserveInfo>>("List", viewListNextWeek);

但是我得到了错误

Error   CS0308  The non-generic method 'ISession.Set(string, byte[])' cannot be used with type arguments    

我也读了这篇文章,但是我不太明白该怎么做。

您可以创建一个扩展方法来将数据列表保存到会话中。请参考这个简单的演示:

public static class TestSession
{
//set session
public static void SetObjectsession(this ISession session, string key, object value)
{
session.SetString(key, JsonConvert.SerializeObject(value));
}
//get session
public static T GetObjectsession<T>(this ISession session, string key)
{
var value = session.GetString(key);
return value == null ? default(T) : JsonConvert.DeserializeObject<T>(value);
}
}

然后使用这个方法来设置和获取会话:

HttpContext.Session.SetObjectsession("A", viewListNextWeek);
HttpContext.Session.GetObjectsession<List<reserveInfo>>("A");

最新更新