Asp.net mvc Asp.NETMVC-具有两个相同类型列表的强类型视图
我有一个强类型为Item类的视图。在我的控制器中,我需要发送两个不同的列表。除了创建一个包含两个列表的新类之外,还有更简单的方法吗 我最终要做的是在我的主页上按日期排序10个项目,按人气排序10个项目 我所做的 事实上,我结合了两个答案。我用两个列表强式输入了我对新创建的类的视图。然后,我将两个局部视图强输入到每个列表中。可能看起来有些过分,但我喜欢它的结果。“创建一个包含两个列表的新类”是一个不错的选择。它被称为视图模型,一旦你接受了它,强类型视图的力量就真正打开了。可以这么简单:Asp.net mvc Asp.NETMVC-具有两个相同类型列表的强类型视图,asp.net-mvc,strongly-typed-view,Asp.net Mvc,Strongly Typed View,我有一个强类型为Item类的视图。在我的控制器中,我需要发送两个不同的列表。除了创建一个包含两个列表的新类之外,还有更简单的方法吗 我最终要做的是在我的主页上按日期排序10个项目,按人气排序10个项目 我所做的 事实上,我结合了两个答案。我用两个列表强式输入了我对新创建的类的视图。然后,我将两个局部视图强输入到每个列表中。可能看起来有些过分,但我喜欢它的结果。“创建一个包含两个列表的新类”是一个不错的选择。它被称为视图模型,一旦你接受了它,强类型视图的力量就真正打开了。可以这么简单: publi
public class IndexViewModel
{
public List<Item> Newest { get; set; }
public List<Item> Popular { get; set; }
}
公共类索引模型
{
公共列表{get;set;}
公共列表流行{get;set;}
}
这是John建议的,或者不使用强类型视图并将其添加到ViewData中:
ViewData["Newest"] = Newest;
ViewData["Popular"] = Popular
另一个选项是强类型局部视图。您应该创建一个模型,其中包含两个视图专用列表
通常在我完成的小MVC中,我为每个视图创建了一个模型,即使它们只是传递数据或业务层提供的相同数据,只是为了保持两部分之间的严格分离。这种设置需要更多的工作,在许多简单的情况下不需要,但在我看来,它确实可以让事情变得更干净。有两种基本原理。首先是采取约翰·希恩·斯坦德的方法。使用这两个列表创建自定义视图模型,并将其传递给强类型视图 第二种方法是把列表看作是“辅助”的数据,并把它们放在像JEFE3那样的视图数据中。但是,在呈现列表时,使用强类型的分部
ViewData["Newest"] = Newest;
ViewData["Popular"] = Popular
我的意思是,在主视图中,您可以调用RenderPartial(…),但要传入您使用的视图数据键
而你的部分答案是:
<%@ ViewUserControl Inherits="System.Web.Mvc.ViewUserControl<List<Item>>" %>
...
...
这使您能够从局部视图中对该视图数据进行强类型访问