所以我有这个小餐馆"餐厅" webapp继续我正在尝试构建一个View页面,用户可以在其中点击创建的(餐厅)表格(点击后自动刷新的下拉菜单)并检查该表格上订购的菜肴。在底部,用户将找到总价。
我的观点100%正常,但仅限数据库中有1个表格。如果我有多个表(餐厅表)(在我的DropCreate-Seed方法中创建),视图将只显示可用表格的下拉列表,而不是其中的菜单。
什么可能导致这个问题?
CODE
表
public class Table
{
[Required]
public int Id { get; set; }
[Required]
public string Name { get; set; }
public virtual List<Dish> Dishes { get; set; }
}
SEED方法
context.Tables.Add(new Table { Id = 1 ,Name = "table1", Dishes = context.Dishes.ToList() });
context.Tables.Add(new Table { Id = 2, Name = "table2", Dishes = context.Dishes.ToList() });
context.Tables.Add(new Table { Id = 3, Name = "table3", Dishes = context.Dishes.ToList() });
context.SaveChanges();
TABLE CONTROLLER
public ActionResult Order(int? tableID)
{
//Create a ViewBag variable contained with all the tables (show name)
List<table> tableL = db.tables.ToList();
List<SelectListItem> tableSL = new List<SelectListItem>();
foreach (var table in tableL)
{
TableSL.Add(new SelectListItem { Text = table.Name.ToLower(), Value = table.Name.ToString() });
}
ViewBag.tableL = tableSL;
//At the start or at problems, get the first table and return it
if (tableID == null || db.tables.Find(tableID) == null)
{
return View(db.tables.First());
}
else
{
Table l = db.tables.Find(tableID);
return View(l);
}
}
查看
@model VBExamenTEST.Models.Table
@{
ViewBag.Title = "Order";
}
<h2>Order</h2>
@using (Html.BeginForm("Bedien", "Bedien", FormMethod.Post))
{
@Html.DropDownList("tableID", (List<SelectListItem>)ViewBag.TableL, new {onchange = "this.form.submit()" });
}
@if(Model != null)
{
double total = 0;
<table>
<tr>
@foreach(var g in Model.Dishes)
{
total += g.Price;
<td>
@Html.DisplayFor(Model=>g.Name)
</td>
}
</tr>
</table>
<p>Total:@total euro </p>
}
因此,如果我的数据库中只添加了一个表格,只要显示下拉菜单,点击时不显示菜肴,总数等于0,我的代码就能完美运行。
我的问题在哪里?