Asp.net core NET核心:查看要编辑的多个项目的网格
我正在尝试构建一个视图,其中来自表(机器)的记录可以上传,并且每个记录都可以在视图中编辑 这是我的获取方法:Asp.net core NET核心:查看要编辑的多个项目的网格,asp.net-core,Asp.net Core,我正在尝试构建一个视图,其中来自表(机器)的记录可以上传,并且每个记录都可以在视图中编辑 这是我的获取方法: public async Task<IActionResult> Test() { return View(await _context.Machines.Include(t => t.MachineTypes).Include(p => p.Suppliers).AsNoTracking().ToListAsync())
public async Task<IActionResult> Test()
{
return View(await _context.Machines.Include(t => t.MachineTypes).Include(p => p.Suppliers).AsNoTracking().ToListAsync());
}
旁注:Post方法尚未定义,因此我现在使用任何名称
然后是读取列表中每个元素的迭代:
@Html.ValidationSummary(true)
@for(int i = 0; i < Model.Count() ; i++)
我不知道为什么我需要使用HiddenFor,我在论坛的另一个例子中看到了它。
uni回答:这是向控制器发送值的多种方法之一。
问题[已回答]:还有,这一部分
@Html.HiddenFor(modelItem => modelItem.Machine[i].Id)
uni的回答:不需要包括“机器”,与之前一样
视图的延续
对于迭代部分,因为“机器”不需要包括在内
[新]问题:我应该如何从机器表中调用所需的项目
我有这个:
@for(int i = 0; i < Model.Count() ; i++)
{
<tr>
<td>
@Html.HiddenFor(modelItem => i.Id)
@Html.DisplayNameFor(modelItem => model.MchName)
</td>
</tr>
}
for(int i=0;i谢谢问题:使用IEnumerable是否正确 回答:是
问题:在这一部分中,我不确定“Model.Machine.Count()”是否正确,我得到的错误是:IEnumerable不包含Machine的定义。如果我这样说就足够了吗?:@for(int I=0;I
(IEnumerable)
,它们存储在您的模型中,因此model.Count()是正确的方法,因为每个机器模型都没有子机器对象
问题:@Html.HiddenFor(modeleItem=>modeleItem.Machine[i].Id)我不知道为什么需要使用HiddenFor,我在论坛的另一个示例中看到了它 回答:当您执行HTTP post时,您有许多方法将值发送到控制器操作。隐藏字段是实现这一点的一种方法。在这种情况下,您将发送机器id作为表单提交的一部分
问题:@Html.HiddenFor(modeleItem=>modeleItem.Machine[i].Id)显示相同的错误:IEnumerable不包含Machine的定义。我想我应该提到那张桌子 答案:这个问题的答案与我前面提到的关于for循环中Count()调用的答案相同
希望这有帮助 谢谢大家!!毫无疑问,在这之后,我们仍在学习如何在.NETCore上实现这一点。添加了以下疑问,但我会继续在谷歌搜索@univNp很乐意帮忙!如果它解决了你的问题,请将答案向上投票:)为了回答你的新问题,我同意你绝对应该使用foreach而不是for loop,我尝试过,但我还没有15个声誉。一旦我达到目标就会回来做!好啊快乐编程,如果您有任何其他问题,请告诉我:)
@for(int i = 0; i < Model.Count() ; i++)
{
<tr>
<td>
@Html.HiddenFor(modelItem => modelItem.Machine[i].Id)
@Html.DisplayNameFor(model => model.MchName)
</td>
</tr>
}
@Html.HiddenFor(modelItem => modelItem.Machine[i].Id)
@Html.HiddenFor(modelItem => modelItem.Machine[i].Id)
@for(int i = 0; i < Model.Count() ; i++)
{
<tr>
<td>
@Html.HiddenFor(modelItem => i.Id)
@Html.DisplayNameFor(modelItem => model.MchName)
</td>
</tr>
}