Objetive:我试图构建一个视图,其中表(机器)中的记录可以在网格中更新,并且每个记录的每个属性都可以选择从下拉列表中选择。
这是我的Get方法:
public async Task<IActionResult> Test()
{
return View(await _context.Machines.Include(t => t.MachineTypes).Include(p => p.Suppliers).Include(s=>s.Stores).AsNoTracking().ToListAsync());
}
这是下拉列表的定义:
private void PopulateMachineTypeDropDownListStore(object selectedStore = null)
{
var typequery = from k in _context.Stores
orderby k.StoreName
select k;
ViewBag.StoreID = new SelectList(typequery.AsNoTracking(), "StoreID", "StoreName", selectedStore);
}
现在,到视图:
型号:
@model IEnumerable<Application.Models.Machine>
因为我需要所有寄存器。然后是表。
部首:
<table class="table">
<thead>
<tr>
<th>
@Html.DisplayNameFor(model => model.MchName)
</th>
<th>
@Html.DisplayNameFor(model => model.StoreID)
</th>
</tr>
</thead>
体:
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.MchName)
</td>
<td>
<div class="form-group">
<label asp-for="StoreID" class="col-md-2 control-label"></label>
<div class="col-md-10">
<select asp-for="StoreID" class="form-control" asp-items="ViewBag.StoreID">
<option value="">-- Seleccione Tienda --
</option>
</select>
<span asp-validation-for="StoreID" class="text-danger"></span>
</div>
</div>
</td>
</tr>
}
</tbody>
</table>
}
问题:我已经读过 td 中最好不要使用 div 但它可能会有效,尽管如此可能是更好的选择。哪个是最好的做法?
问题:嗯,这是一个测试,但我收到此错误: &#34;&#39; IEnumerable的&#39;不包含&#39; StoreID&#39;的定义没有扩展方法&#39; StoreID&#39;接受类型&#39; IEnumerable&#39;的第一个参数。可以找到(你错过了使用指令或汇编引用吗?)&#34;
我无法跟踪错误。对我来说它看起来很好,我不知道为什么它不能读取StoreID。我想知道它是否适用于&#34; asp-for&#34;里面的div。我不知道。
感谢任何帮助。
由于