【发布时间】:2021-06-03 22:50:33
【问题描述】:
我正在开发一个 ASP.NET MVC 项目。我正在尝试在添加和编辑页面上添加主详细信息。但是当我想编辑一条记录时,“纱线下拉列表”为空,但是当我调试项目数据时,项目数据正确来自数据库。我没有弄清楚这个问题。 Yarn 和 Yarn Detail 表之间的一对多关系,以及
//编辑页面
<table>
<tr>
<th>Yarn Name</th>
<th>Unit Price of Yarn</th>
<th>Percentage of Using</th>
<th></th>
</tr>
@{ int i = 0;}
@foreach (var x in Model.YarnDetails)
{
<tr>
<td>
@Html.DropDownListFor(model => x.YarnID , ViewBag.YarnList as SelectList, "--select--", new { @class = "form-control", @Name = "[" + i + "].YarnID" })
</td>
<td>
@Html.HiddenFor(model => x.YarnDetailID, new { @Name = "[" + i + "].YarnDetailID" })
<input type="button" value="Remove" class="remove" />
</td>
</tr>
i++;
}
</table>
//控制器部分
public ActionResult Edit(int FabricCostCalcID)
{
var fabCo = _context.FabricCostCalcs.SingleOrDefault(c => c.FabricCostCalcID == FabricCostCalcID && c.IsDeleted == false);
List<Fabric> fabriclist = _context.Fabrics.Where(x => x.IsDeleted == false).OrderBy(y => y.FabricName).ToList();
List<KnittingOption> knittinglist = _context.KnittingOptions.Where(x => x.IsDeleted == false).OrderBy(y => y.KnittingName).ToList();
List<Yarn> yarnList = _context.Yarns.Where(x => x.IsDeleted == false).OrderBy(y => y.YarnName).ToList();
ViewBag.YarnList = new SelectList(yarnList, "YarnID", "YarnName");
ViewBag.FabricList = new SelectList(fabriclist, "FabricID", "FabricName");
ViewBag.KnitingList = new SelectList(knittinglist, "KnittingOptionID", "KnittingName");
return PartialView("_EditPartial", fabCo);
}
[HttpPost]
public ActionResult Edit(FabricCostCalc fabricCost, List<YarnDetail> yarnDetails)
{
_context.Entry(fabricCost).State = EntityState.Modified;
foreach (var yar in yarnDetails)
{
yar.FabricCostCalcID = fabricCost.FabricCostCalcID;
_context.Entry(yar).State = EntityState.Modified;
}
_context.SaveChanges();
return RedirectToAction("Index");
}
//前端屏幕截图
//DATABESE
提前谢谢你
【问题讨论】:
标签: asp.net-mvc entity-framework razor master-detail