这里我在表格中有一些行,并列出了我的产品的标志,在这种情况下称为项目。当我想将标志编辑为开启或关闭时(是/否),我需要访问整个项目本身,因为我无法识别我点击的项目标记。
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
<ul>
@foreach (var flag in item.Flags)
{
<li>
@Html.DisplayFor(modelItem => flag.Name) |
@(flag.Enabled ? "Yes" : "No") |
@Html.ActionLink("Edit", "FlagEdit", new { flagId = flag.Id, itemId = item.Id })
</li>
}
</ul>
</td>
如果不清楚,请询问,我会详细说明。我试图发送itemId但因为我在foreach的旗帜内,我无法掌握它。
当我到达第一个,如果检查参数不为空,则检查失败。
[ActionName("FlagEdit")]
public async Task<ActionResult> EditFlagAsync(string flagId, string itemId)
{
if (flagId == null || itemId == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Item item = await DocDBRepo<Item>.GetItem(itemId);
if (item == null)
{
return HttpNotFound();
}
//do update
return View(item);
}
我尝试过搜索,但也许我只是没有搜索正确的关键字。有人可以帮忙吗?
答案 0 :(得分:1)
试试这个:
@Html.ActionLink("Edit", "FlagEdit", new { flagId = flag.Id, itemId = item.Id }, null)