여기 테이블에 몇 개의 행이 있고이 경우 항목이라고하는 내 제품의 플래그를 나열하고 있습니다. 플래그를 on 또는 off (예/아니오)로 편집하려면 클릭 한 항목의 플래그를 식별 할 수있는 다른 방법이 없기 때문에 전체 항목 자체에 액세스해야합니다.ActionLink를 통해 ASP.NET MVC 컨트롤러로 항목을 보내는 방법은 무엇입니까?
@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 플래그 내에 있기 때문에 그걸 잡을 수는 없습니다.
params가 null이 아닌 경우 첫 번째 메시지가 표시되면 확인이 실패합니다.
[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);
}
검색을 시도했지만 어쩌면 올바른 키워드를 검색하지 못했습니다. 아무도 도와 줄 수 있습니까?
정확히 문제가 무엇인가? itemId가 제어 방법에 도달하지 못 했습니까? 귀하의 ActionLink는 괜찮아 보입니다. –
컨트롤러와 정확한 지점으로 업데이트했습니다. flagId가 null이 아니므로 actionLink가 정상임을 압니다. foreach에서 내 항목을 보낼 수 없습니다. –