我是MVC的新手,我正在寻找处理以下类的Enumerator访问的最佳方法:
public class TemplateCollection : IEnumerable<Template>
{
private IEnumerable<Template> templates;
public TemplateCollection()
{
LoadTemplates();
}
public IEnumerator<Template> GetEnumerator()
{
return templates.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return templates.GetEnumerator();
}
}
我的观点(或多或少):
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<TemplateCollection>" %>
<asp:Content ContentPlaceHolderID="MainContent" runat="server">
<%foreach(var template in ViewData ??) %>
</asp:Content>
如何在foreach循环中访问Enumerator?或者我是否需要创建一个容器类,将我的TemplateCollection公开为属性并访问该视图ViewDate [“TemplateCollection”]?
谢谢,
答案 0 :(得分:1)
您实际上不需要定义新的集合类型类来用作模型。你可以简单地使用:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<Template>>" %>
但在这两种情况下,您必须使用Model属性而不是ViewData属性 像这样:
<asp:Content ContentPlaceHolderID="MainContent" runat="server">
<%foreach(var template in Model) %>
</asp:Content>
OB的。不要使用IEnumerable<TemplateCollection>
或它与IEnumerable<IEnumerable<Template>>
相同,我认为这不是你想要的。
答案 1 :(得分:0)
其实非常简单:
<%foreach (var template in Model) { } %>