私は MVC3 ASP.Net アプリケーションに取り組んでいます。変数を設定する方法を理解しようとしているQuantity
ので、変数をコントローラーに渡すとHtml.ActionLink
正しい番号になります。これがビューのコードです
@model IEnumerable<GreatVideosTrainingApplication.Models.Candy>
@{
ViewBag.Title = "Great Videos";
List<GreatVideosTrainingApplication.Models.Candy> candies = new List<GreatVideosTrainingApplication.Models.Candy>();
foreach (var candy in Model)
{
candies.Add(candy);
}
var grid = new WebGrid(candies);
var Quantity = 0;
}
<p>Welcome To Great Videos! The best source for your favorite DVDs and Blu-Rays</p>
<img src ="/Content/Images/dvd50.jpg" />
<p></p>
<img src="/Content/Images/bluray.jpg" />
<form method="post" action="/ShoppingCart/AddToCandyCart/"+item.CandyID >
@grid.GetHtml(@columns: grid.Columns(
grid.Column("Name"),
grid.Column("Price"),
grid.Column("Quantity", format: (item) => @Html.TextBox("Quantity", @Quantity)),
grid.Column("AddToCart", format: (item) => Html.ActionLink("Add To Cart", "AddToCandyCart", "ShoppingCart", new { id = item.CandyID, quantity = @Quantity }, ""))
)
)
</form>
で数量の値を設定しようとしていますが、うまくいきHtml.TextBox
ません。ここで覚えておいてください、私は JavaScript を知りません。MVC3 は非常に初めてです。ただし、すべてのヘルプは大歓迎です。
public ActionResult AddToCandyCart(int id, FormCollection values)
{
// Add it to the shopping cart
var quantity = values["Quantity"];
var cart = ShoppingCart.GetCart(this.HttpContext);
// Retrieve the video from the database
var addedCandy = storeDB.Candies.Single(Candy => Candy.CandyID == id);
cart.AddToCandyCart(addedCandy, int.Parse(quantity));
// Go back to the main store page for more shopping
return RedirectToAction("Index");
}