您可能想要一個IEnumerable<SomeViewModel>
作爲視圖模型?其實很難說,你從你的問題想要什麼,但讓我嘗試猜測:
型號:
public MyViewModel
{
public int Col { get; set; }
public int Row { get; set; }
public int Result { get; set; }
}
控制器:
public class HomeController : Controller
{
// GET: /Home/
public ActionResult Index()
{
var model = new List<MyViewModel>();
for (int row = 1; row <= 2; row++)
for (int col = 1; col <= 2; col++)
{
model.Add(new MyViewModel
{
Row = row,
Col = col,
Result = row * col
});
}
return View(model);
}
}
視圖(~/Views/Home/Index.aspx
):
<%@ Page
Language="C#"
MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<IEnumerable<AppName.Models.MyViewModel>>"
%>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% foreach (var item in Model) { %>
<div>
<span>Col: <%= item.Col %></span>
<span>Row: <%= item.Row %></span>
<span>Answer: <%= item.Result %></span>
</div>
<% } %>
</asp:Content>
或者如果您使用顯示模板(建議):
<%@ Page
Language="C#"
MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<IEnumerable<AppName.Models.MyViewModel>>"
%>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<%= Html.DisplayForModel() %>
</asp:Content>
然後內部~/Views/Home/DisplayTemplates/MyViewModel.ascx
:
<%@ Control
Language="C#"
Inherits="System.Web.Mvc.ViewUserControl<AppName.Models.MyViewModel>"
%>
<div>
<span>Col: <%= Html.DisplayFor(x => x.Col) %></span>
<span>Row: <%= Html.DisplayFor(x => x.Row) %></span>
<span>Answer: <%= Html.DisplayFor(x => x.Result) %></span>
</div>
你能解釋一下你的意思嗎?「你需要建立一組結果來顯示」如何建立一組顯示? – software 2011-03-10 19:35:11
@software,參見[Darin Dimitrov的簡單示例](http://stackoverflow.com/questions/5264784/i-need-multiplication-tables-output-what-is-the-wrong/5264877#5264877)。他創建了一個'List'並將每個結果添加到它'model.Add(new MyViewModel ...'。 –
jball
2011-03-10 19:38:48