ショッピング カートに追加されたアイテム数の数量セレクターを実装しようとしています。
カタログ内のアイテムの各行に動的な名前のテキスト ボックスがあります。各行には「カートに入れる」ボタンがあります。
テキストボックスに希望の数量を入力して「カートに入れる」ボタンをクリックすると、選択したアイテムの入力された数量がカートに追加されます。
カートのデータベースに新しい数量を追加するコントローラー アクションは次のとおりです。
public ActionResult AddToCart(int productID, int quant)
{
repository.AddItemToOrder(productID, quant);
return RedirectToAction("Browse");
}
「Browse」アクションを呼び出してページを再度レンダリングすることは、最も効率的な方法ではないことを私は知っています。それについては後で説明します。
私の質問は、この "AddToCart" コントローラー アクションを両方のパラメーターで呼び出すにはどうすればよいですか?
1つのパラメーターで動作するバージョンを取得できました。この場合、上記のコントローラ アクションの 2 番目のパラメータ quant が削除されました。
私のビューの行は次のとおりです。
<input type="button" onclick="document.location.href = '<%: Url.Action("AddToCart") %>'+'?productID=<%: item.ProductID %>' " value="Add to Cart" />
これはうまくいきましたが、数量のテキストボックスを参照できるようにする必要があります。
ビューに複数のパラメーターを含む次の行を試しました。
<input type="button" onclick="document.location.href = '<%: Url.Action("AddToCart") %>'+'?productID=<%: item.ProductID %>'+'?quant=<%: item.ProductID %>' " value="Add to Cart" />
「quant」に割り当てられる値は、「productID」に割り当てられる値と同じです。私は単に何かを正しく動作させるためにこれを行いました。機能したら、動的な名前を持つテキストボックスの値を使用する予定です。(私もそれについていくつかの助けが必要です)
行のボタンをテストしてクリックすると、次のエラーが表示されました。
パラメーター ディクショナリには、'OER.Controllers.eCommerceController' のメソッド 'System.Web.Mvc.ActionResult AddToCart2(Int32, Int32)' の null 非許容型 'System.Int32' のパラメーター 'productID' の null エントリが含まれています。オプションのパラメーターは、参照型または null 許容型であるか、オプションのパラメーターとして宣言する必要があります。パラメータ名: パラメータ