장바구니를 표시하는 asp.net (Core) 앱에서보기가 있습니다. 일반적인 장바구니 물건 - 장바구니에있는 항목을 나열합니다. 각 행에는 수량을 변경할 수있는 편집 가능한 필드와 사용자가 행을 "삭제"로 표시 할 수있는 편집 가능한 확인란이 있습니다.보기의 여러 단추 - 다른 방법
보기 하단에 "업데이트 카트"(행을 삭제하고 수량을 업데이트 함)에 대한 두 개의 버튼이 필요합니다. 다른 하나는 "주문 작성"을위한 것입니다.이 주문은 "카트 업데이트"와 동일하게 수행되지만 주문도 작성합니다.
하나의 버튼을 만들고 컨트롤러에서 적절한 메소드를 호출 할 수 있지만 두 번째 버튼을 추가하는 데 문제가 있으며 다른 메소드를 호출해야합니다.
@model CustomerPortal.Models.StoreViewModels.CartViewModel
@{
ViewData["Title"] = "View";
}
<h2>Shopping Cart</h2>
<form asp-action="UpdateCart">
<table class="table">
<thead>
<tr>
<th>Item</th>
<th>Size</th>
<th>Colour</th>
<th>Quantity</th>
<th>Unit Price Inc. GST</th>
<th>Line Amount Inc. GST</th>
<th>Delete</th>
</tr>
</thead>
<tbody>
@for (var i = 0; i < Model.CartLines.Count; i++)
{
<tr>
@Html.HiddenFor(modelItem => modelItem.CartLines[i].CartLine.ID)
<td>@Html.DisplayFor(modelItem => modelItem.CartLines[i].CartLine.Item.Description)</td>
<td>@Html.DisplayFor(modelItem => modelItem.CartLines[i].CartLine.ItemSize.Name)</td>
<td>@Html.DisplayFor(modelItem => modelItem.CartLines[i].CartLine.ItemColour.Name)</td>
<td>@Html.EditorFor(modelItem => modelItem.CartLines[i].CartLine.Quantity)</td>
<td>@Html.DisplayFor(modelItem => modelItem.CartLines[i].UnitPriceInecTax)</td>
<td>@Html.DisplayFor(modelItem => modelItem.CartLines[i].LineAmountIncTax)</td>
<td>@Html.EditorFor(modelItem => modelItem.CartLines[i].Delete)</td>
</tr>
}
</tbody>
</table>
<div class="form-group">
<input type="submit" value="Update Cart" class="btn btn-default"/>
<input type="submit" value="Create Order" class="btn btn-default"/>
</div>
</form>
을 그리고 ShoppingCartController의 방법과 같이 : 나는 "@using (Html.BeginForm를 사용하려고했습니다
[HttpPost, ActionName("UpdateCart")]
[Authorize]
public async Task<IActionResult> UpdateCart(CartViewModel cart)
{
// Need to do some stuff here
return RedirectToAction("Index");
}
[HttpPost, ActionName("CreateOrder")]
[Authorize]
public async Task<IActionResult> CreateOrder(CartViewModel cart)
{
// Need to do some stuff here
return RedirectToAction("Index");
}
순간
은, 내 생각은 다음과 같습니다 "현재의 형식 (위와 같음)은"종류 "가 작동하는 유일한 방법입니다 (두 단추 모두 하나의 함수를 호출 함).어떻게 그렇게 할 수 있습니까? 다른 방법? 또는 두 번째 매개 변수를 사용하여 같은 메서드를 호출 할 수도 있습니다 (순서를 만들지 여부를 나타냄).
감사합니다.
에서 설명한 바와 같이, 자바 스크립트에서 버튼 클릭 이벤트를 납치하고 원하는 일에 부모 양식 action 속성 값을 설정하고 제출 이벤트를 트리거입니다 귀하의 기술에 의해 불가능한 다른 컨트롤러 두 가지 다른 양식을 사용하거나 아약스 함수로 양식을 게시하려고 –