我很新的MVC和視圖的類型時找的處理訪問下面的類的枚舉的最佳方式查看訪問:MVC強類型到的GetEnumerator()
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循環?或者我是否需要創建一個容器類來公開我的TemplateCollection作爲屬性並訪問該視圖ViewDate [「TemplateCollection」]?
感謝,
主席先生,我想您的解決方案將工作,但我TemplateCollection可能包含我需要訪問其他屬性。我不想只傳遞可作爲參數枚舉的「模板」。我同意可能難以從我的問題中辨別出來。 +1而不是我正在尋找的答案。 (但它是由Studio生成的視圖的默認設置。)謝謝 – andleer 2010-08-06 16:03:44
此外,新集合的目的是充當許多屬性的頂級容器等。它不是簡單地完成從控制器傳遞來查看。 – andleer 2010-08-06 16:05:24
沒問題。在這種情況下,您可以簡單地使用ViewPage並通過Model屬性進行訪問,或者當TemplateCollection從IEnumerable 派生時,您可以使用ViewPage >並使用強制轉換來強制您的自定義屬性。像那樣:((TemplateCollection)模型).YourCustomProperty。 –
2010-08-09 19:20:07