Я хочу чистые URL и определил два маршрута:
routes.MapRoute(
"Search",
"Search",
new { controller = "Search", action = "SearchPanel" }
);
routes.MapRoute(
"SearchResults",
"Search/{content}",
new { controller = "Search", action = "Search", content = string.Empty, query = string.Empty, index = 0 }
);
, затем у меня есть два действия:
[HttpPost]
public ActionResult Search(string content, string query)
{
if (string.IsNullOrEmpty(query))
{
return RedirectToAction("Home", "Application");
}
return RedirectToAction("Search", new { content = content, query = query }); ;
}
public ActionResult Search(string content, string query, int? index)
{
if (string.IsNullOrEmpty(query))
{
return RedirectToAction("Home", "Application");
}
switch (content)
{
case "products":
// get products
return View("ResultsProducts");
case "categories":
// get categories
return View("ResultsCategories");
default:
// get all
return View("ResultsAll");
}
}
У меня есть общая панель поиска на главной странице, котораятекстовое поле и кнопку отправки.Это отправляет /Search
.Имя текстового поля query
.Все отлично и замечательно.Когда я нажимаю Search
, выполняется мое первое действие, но оно не выполняется при вызове RedirectToAction()
:
Ни один маршрут в таблице маршрутов не соответствует указанным значениям.не могу найти причину, по которой это не работает.