ショッピング アイテムを表示する Item モデルに関連付けられたビューがあります。数量テキスト フィールドを追加し、itemID と数量をコントローラーに送信します。AJAX フォームを使用しています。
AJAX フォーム:
@using (Ajax.BeginForm("AddToCart", "PizzaBasket",
new AjaxOptions
{
InsertionMode = InsertionMode.Replace,
HttpMethod = "GET",
OnFailure = "searchFailed",
LoadingElementId = "ajax-loader",
UpdateTargetId = "basketSummary",
}))
{
@Html.HiddenFor(id => id.ItemId, new { @class = "id" })
<input type="hidden" name="id" class="id")/>
<label for="quantity">Quantity</label>
<input type="text" name="quantity" size="5"/>
<input type="submit" value="Add to Cart" />
<img id="ajax-loader" src="@Url.Content("~/Content/Images/ajax-loader.gif")" style="display:none"/>
}
コントローラーのアクション:
public ActionResult AddToCart(String id, String quantity) {
/*Add to cart*/
return RedirectToAction("Index");
}
ただし、id 値は送信されません。AJAX フォームからコントローラに id 値を渡す方法を見つける必要があります。同じファイルで @Model.itemId が正常に機能していることに注意してください。