在ASP.NET MVC的意見需要被強類型到要傳遞到他們的模型。所以在你的情況下,你正在向你的視圖傳遞一個UserModels
實例。假設你已經有一個母版頁,並要在表中顯示僱員的名單,你可能有沿着線的東西:
<%@ Page
Language="C#"
MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<AppName.Models.UserModels>"
%>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<table>
<thead>
<tr>
<th>Name</th>
<th>Sex</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<% foreach (var employee in Model.EmployeeList) { %>
<tr>
<td><%= Html.Encode(employee.name) %></td>
<td><%= Html.Encode(employee.sex) %></td>
<td><%= Html.Encode(employee.email) %></td>
</tr>
<% } %>
</tbody>
</table>
</asp:Content>
,甚至更好,定義將automaticall被渲染爲可重複使用的顯示模板在EmployeeList
集合屬性的每個項目(~/Views/Shared/DisplayTemplates/GetEmployee.ascx
):
<%@ Control
Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<dynamic>"
%>
<tr>
<td><%= Html.DisplayFor(x => x.name) %></td>
<td><%= Html.DisplayFor(x => x.sex) %></td>
<td><%= Html.DisplayFor(x => x.email) %></td>
</tr>
,然後在你的主視圖簡單地引用該模板:
<%@ Page
Language="C#"
MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<AppName.Models.UserModels>"
%>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<table>
<thead>
<tr>
<th>Name</th>
<th>Sex</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<%= Html.EditorFor(x => x.EmployeeList)
</tbody>
</table>
</asp:Content>
現在,您不再需要任何foreach
循環(因爲如果屬性是遵循標準命名約定的集合屬性,則ASP.NET MVC將自動呈現顯示模板),並且還有用於模型的可重用的顯示模板。