【发布时间】:2021-01-22 18:49:24
【问题描述】:
是否有可能在 .net core 3.1 中访问 .cshtml 中的复杂对象?我浏览了大多数网站都无法获得相同的任何信息。在服务器端,我发现我们可以这样做
public static class SessionExtensions
{
public static T GetComplexData<T>(this ISession session, string key)
{
var data = session.GetString(key);
if (data == null)
{
return default(T);
}
return JsonConvert.DeserializeObject<T>(data);
}
public static void SetComplexData(this ISession session, string key, object value)
{
session.SetString(key, JsonConvert.SerializeObject(value));
}
}
HttpContext.Session.SetComplexData("abcd", listOfObject);
我们如何访问这个listOfObject,它是剃刀视图会话中的列表?
问候, 基兰
【问题讨论】:
-
您需要扩展方法(如您的代码中所述),当然在 razor 视图中,您仍然需要使用这些扩展方法(不会有字典式访问器)。
-
cshtml 是服务器渲染的,因此您可以使用相同的方法。但是我不建议在视图中访问它,而是在控制器中将其传递给 Model/ViewBag 中的视图。
标签: c# asp.net-mvc asp.net-core .net-core asp.net-core-3.1