MVC3 передает параметр другим в том же контроллере - PullRequest
1 голос
/ 02 апреля 2012

Я пытаюсь передать параметр, который является 'priceValue'.Как я могу передать это значение через RedirectToAction?или у тебя есть идеи для этого?Я пытаюсь сделать корзину сейчас.PriceValue - это значение RadioButton.Не могли бы вы помочь мне?После прохождения priceValue, и я хочу использовать заявление if, что я написал в AddToCart.Можно ли его использовать?Пожалуйста, помогите мне .. Спасибо.

public class ShoppingCartController : Controller
{
rentalDB db = new rentalDB();
    //
    // GET: /ShoppingCart/
    public ActionResult Index()
    {
        var cart = ShoppingCart.GetCart(this.HttpContext);

        // Set up our ViewModel

        var viewModel = new ShoppingCartViewModel
        {
            CartItems = cart.GetCartItems(),
            CartTotal = cart.GetTotal()
        };

        // Return the view
        return View(viewModel);
    }


    // GET: /Store/AddToCart/5
    [HttpPost]
    public ActionResult AddToCart(int id, FormCollection col)
    {
        var addedProduct = db.Product
            .Single(product => product.productId == id);
        decimal priceValue = Convert.ToDecimal(col["price"]);
        //how to pass priceValue to index
        if (Convert.ToDecimal(col["price"]) == addedProduct.threeDayPrice)
        {
            ViewBag.price = new SelectList(db.Product, "productId", "threeDayPrice");
            //How to put this value into cart.AddtoCart(addedProduct) with date and price
        }
        else if (Convert.ToDecimal(col["price"]) == addedProduct.aWeekPrice)
        {
            ViewBag.price = new SelectList(db.Product, "productId", "aWeekPrice");
            //How to put this value into cart.AddtoCart(addedProduct) with date and 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
        //I don't know how to pass the 'priceValue' by using RedirectToAction.
        return RedirectToAction("Index", new {id = priceValue});
    }

Ответы [ 2 ]

2 голосов
/ 02 апреля 2012

Вы должны добавить параметр в ваш метод Index, чтобы иметь возможность получить значение, переданное в метод Index:

public ActionResult Index(int priceValue = 0).

Вместо 0 вы можете использовать любое значение по умолчаниюпожелает.Затем вызов

return RedirectToAction("Index", new {@priceValue = priceValue});

позволит вам получить значение внутри метода.

1 голос
/ 02 апреля 2012
return RedirectToAction("Index", new {@id = priceValue.toString()}); 

перенаправит его в метод Action с именем Index с параметром id

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...