У меня есть абстрактный класс с определенной виртуальной функцией:
public abstract class ContentController
{
public virtual ActionResult Index();
}
У меня есть класс, производный от вышеуказанного базового класса:
public class CartController : ContentController
Мне нужен CartController, чтобы иметь возможность привязывать корзину с привязкой пользовательской модели по его методу Index. Что-то, что обычно выглядит так:
public ActionResult Index(Cart cart)
Если я просто помещаю функцию Index (Cart) в класс CartController, я получаю эту ошибку:
The current request for action 'Index' on controller type 'CartController' is ambiguous between the following action methods:
ActionResult Index() on type CartController
ActionResult Index(Cart) on type CartController
Единственное решение, которое я до сих пор нашел, - это переименовать мою функцию привязки модели и перенаправить из переопределенного метода Index:
public override ActionResult Index()
{
return RedirectToAction("IndexWithCart");
}
public ActionResult IndexWithCart(Cart cart)
{
return View("Index", cart);
}
Это работает, но тогда мой URL / Cart / IndexWithCart. Есть ли способ сделать это и по-прежнему использовать только URL / Cart без изменения базового класса?