嗨,我是asp新手,我想问你一些帮助。我用MvcMusicStore教程帮助建立了商店。现在我想添加一个视图来管理将只显示OrderID(在Index View中)的订单,然后在Details View中显示更多信息。信息将来自表看起来像这样:MVC,查看显示数据
当我列出的OrderID,其倍增,因为每个产品创建与表相同的OrderID新纪录。有没有什么办法只显示一次每个ID?
然后我试图在“详细视图”中显示更多信息,但我再次失败。我在控制器中使用此代码:
public ActionResult Details(int id)
{
var orderdetail = storeDB.OrderDetails.Single(a => a.Order.OrderId == id);
return View(orderdetail);
}
但显然它不会工作,因为只有一个元素可以显示。我也尝试使用Details.aspx中的foreach循环,但是我收到了一些IEnumerables相关的错误。欢迎任何建议,对新手问题和糟糕的英语感到抱歉。谢谢。
编辑:这是控制器的索引视图代码(产品在我的表等于专辑教程):
public ActionResult Index()
{
var manageorders = storeDB.OrderDetails
.Include("Product").Include("Order")
.ToList();
return View(manageorders);
}
和细节查看代码:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/MasterPage.Master" Inherits="System.Web.Mvc.ViewPage<ss.Models.OrderDetail>" %>
指数
<div id="style3">manage orders</div>
<div id="style1">
<table>
<tr>
<th></th>
<th>
user
</th>
<th>
data
</th>
<th>
product
</th>
<th>
quantity
</th>
</tr>
<% foreach (var item in Model) { %>
<tr>
<td>
<%: Html.ActionLink("Edit", "Edit", new { id=item.Order.OrderId }) %> |
<%: Html.ActionLink("Details", "Delete", new { id=item.Order.OrderId })%>
</td>
<td>
<%: item.Order.Username %>
</td>
<td>
<%: item.Order.OrderDate %>
</td>
<td>
<%: item.Quantity %>
</td>
<td>
<%: item.Quantity %>
</td>
</tr>
<% } %>
<p>
<%: Html.ActionLink("Create New", "Create") %>
</p>
和错误,我recieving:
Compiler Error Message: CS1579: foreach statement cannot operate on variables of type 'ss.Models.OrderDetail' because 'ss.Models.OrderDetail' does not contain a public definition for 'GetEnumerator'
你能从你的视图(ASPX)发布代码吗?这可能会帮助我们诊断您所看到的IEnumerable错误。 – JMP 2011-02-04 19:58:29
你有链接到本教程吗? – Spooks 2011-02-04 20:09:38