[HttpPost]
public ActionResult AddToCart(int phoneListingID, string sellerSKU)
{
ShoppingBasket shoppingBasket = new ShoppingBasket();
BasketItem currentItem = new BasketItem
{
sellerID = 1,
Price = 100,
Quantity = 1,
sellerSKU = "testsku"
};
shoppingBasket.AddtoBasket(currentItem, this.HttpContext);
var viewModel = new BasketViewModel
{
basketItems = ShoppingBasket.GetBasketItems(this.HttpContext),
basketTotal = ShoppingBasket.GetBasketTotal(this.HttpContext)
};
return View(viewModel);
}
Моя форма:
@using (Html.BeginForm("AddToCart","ShoppingBasket",new { phoneListingID = 12345, sellerSKU = "test"}, FormMethod.Post ))
{
<input type="submit" value="AddToCart" />
}
Ожидается, что моя страница BasketViewModel будет возвращена, но возвращаемое представление - ShoppingBasket/AddToCart?PhoneID=xxxx&sellerSKU=xxxx
Что я делаю не так?
В MVC Предположим, что ваше действие похоже на
public ActionResult MyAction()
{
return View();
}
В этом scenerio он укажет на представление с именем "MyAction". Если вы хотите отправить его другому виду, сделайте так
public ActionResult MyAction()
{
return View("MyViewName");
}
Если вы хотите передать некоторую модель, чтобы сделать ее
public ActionResult MyAction()
{
return View("MyViewName",model); // Here model is your object of model class
}
В вашем фрагменте вы возвращаете значение по умолчанию, т.е. "AddToCart", потому что вы не описываете явно. Сделайте свой код похожим
return View("BasketViewModel",viewModel); // where BasketViewModel is your view name
Вы возвращаете этот вид контроллера, если вы хотите перевести его в другое представление, попробуйте return BasketViewActionResult(viewmodel)
Затем перейдите к своему "BasketViewActionResult",
Function BasketViewActionResult(model as BasketViewModel) as ActionResult
return View(model)
End Function
Извините, если вы не получите VB, я могу перевести его на С# для вас, если хотите.
Изменение: вы также можете просто изменить действие формы.
@using (Html.BeginForm("BasketView","ShoppingBasket",...
и сделайте все свои манипуляции в этом действии