В моем productcontroller у меня есть два метода возврата actionresult:
[Route("Shop/{brand}/{category}/{subcategory?}/{page:int?}")]
public ActionResult Index(string brand, string category, string subcategory, int? page, SortOptions currentSort = SortOptions.SinceDesc)
{ //...
а также
[HttpPost]
[Route("Shop/{brand}/{category}/{subcategory?}/{page:int?}")]
public ActionResult Index(ProductsViewModel pvm)
{ //...
А это мой бритвенный взгляд:
@using (@Html.BeginForm("Index", "Products", FormMethod.Post))
{
@Html.DropDownListFor(x => x.SubCatID, Model.SubCategoriesSelectList, new { @class = "multiselect" })
}
Когда я отправляю страницу, она попадает в метод httppost, но URL-адрес по-прежнему: Shop/nike/shoes, даже когда я выбрал подкатегорию кроссовки из раскрывающегося списка. Я хотел бы иметь такие URL-адреса:
- магазин/найк/обувь
- магазин/nike/обувь/кроссовки
Будучи больше парнем веб-формы, мне трудно переходить к новым URL-адресам и использовать свойства модели представления в качестве параметров.
edit опубликовал мой пользовательский интерфейс: , чтобы объяснить мой пользовательский интерфейс:
первое раскрывающееся меню должно get
переходить в подкатегорию. например: магазин/nike/обувь/кроссовки
Второй должен опубликовать «назад», чтобы отсортировать продукты.
Ползунок цены должен вернуться, потому что он должен фильтровать. (будет фильтровать клиентскую сторону, если не будет пейджинга)
Пейджинг должен получиться так, чтобы вы могли ссылаться на определенную страницу: shop/nike/shoes/runningshoes/page2 и т. д.