我保存了一些行数据在一个名为">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");