首页 > 解决方案 > 是否有任何简单的方法可以将复杂对象从一个 PageModel 文件传递​​到 asp.net 核心剃须刀页面(mvvm,而不是 mvc)中的另一个?

问题描述

我熟悉asp.net mvc开发。在该框架中,传递复杂对象(例如对象列表)就像在一个控制器中创建公共静态列表一样简单:

public static List<T_Material> lstProducts = new List<T_Material>()
        {
            new T_Material {T_MaterialID = 1, Name = "Product1", Description="Description1", Price=20, MonthsOfAccess=20},
            new T_Material {T_MaterialID = 2, Name = "Product2", Description="Description2", Price=20, MonthsOfAccess=20}
        }

并使用以下代码在另一个控制器中引用:ControllerName.lstProducts

我正在asp.net核心剃须刀页面中构建一个应用程序(使用带有PageModel代码而不是MVC的文件的剃须刀页面)并从一个PageModel文件传递一个复杂的对象一点也不简单。我觉得这个问题的答案应该很明显,但我还在摸不着头脑。

标签: c#asp.netmvvmrazor-pages

解决方案


如果您希望将对象从控制器传递到视图,请使用 viewbag。

ViewBag.ListProducts = lstProducts;

请注意,只能使用 PageMdel 在强类型视图中访问此 Viewbag。

如果您希望将此对象从第一个请求传递到第二个请求,请使用 tempdata。

TempData[“ListProducts”]= lstProducts;


推荐阅读