パラメータHtml.BeginFormを使用してrentPeriodを渡します。 現在、私はDetails.cshtmlにテキストを入れています。 3、7、14などのrentPeriodを数値として渡したい場合、何をする必要がありますか? 隠しフィールドや関数を使用する必要がありますか? AddToCartメソッドである他のメソッドにパラメータを渡す方法がわかりません。 番号の値を渡す方法を教えてください。おかげさまで MVC3はbeginFormを使用してパラメータを渡します
Details.cshtml。
<td>
Rental Period: <br />
@using (Html.BeginForm("AddToCart", "ShoppingCart", new { id = Model.productId }, FormMethod.Post))
{
<div class="display-label">
@Html.RadioButtonFor(model => model.price, Model.threeDayPrice)
//I put just text in here '3 day' How can I write this number, '3'?
//do I have to use hiddenfield? or other functions?
3 day: £@Model.threeDayPrice
</div>
<div class="display-label">
@Html.RadioButtonFor(model => model.price, Model.aWeekPrice)
1 week: £@Model.aWeekPrice
</div>
<div class="display-label">
@Html.RadioButtonFor(model => model.price, @Model.twoWeekPrice)
2 week: £@Model.twoWeekPrice
</div>
<div class="display-label">
@Html.RadioButtonFor(model => model.price, @Model.aMonthPrice)
1 month: £@Model.aMonthPrice
</div>
<div class="display-label">
@Html.RadioButtonFor(model => model.price, @Model.threeMonthPrice)
3 month: £@Model.threeMonthPrice
</div>
<div class="display-label">
@Html.RadioButtonFor(model => model.price, @Model.sixMonthPrice)
6 month: £@Model.sixMonthPrice
</div>
<br />
<input type="submit" class="button" value="Add to cart" style="margin-left:0px; width:90px;"/>
}
</td>
AddToCartメソッドのShoppingCartコントローラ。
//How to pass the parameter here.
[HttpPost]
public ActionResult AddToCart(int id, FormCollection col)
{
var addedProduct = db.Product
.Single(product => product.productId == id);
decimal priceValue = Convert.ToDecimal(col["price"]);
// Retrieve the product from the database
// Add it to the shopping cart
var cart = ShoppingCart.GetCart(this.HttpContext);
cart.AddToCart(addedProduct);
// Go back to the main store page for more shopping
return RedirectToAction("Index", new { @priceValue = priceValue });
}