0

ショッピング アイテムを表示する 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 が正常に機能していることに注意してください。

4

3 に答える 3

0

Forms Collection は次のように使用できます。

意見 :

@Html.HiddenFor(m=>m.ProductID)

コントローラ:

    [HttpPost]
    public void HiddenForExample(FormCollection collection)
    {
        string productid = Convert.ToString(collection["ProductID"]);
    }
于 2013-08-18T08:23:21.967 に答える