我想要乾淨的網址,並定義了兩個途徑:路線沒有得到解決
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()
上失敗請致電:
路由表中沒有路由與提供的值匹配。
我似乎無法找到它不起作用的原因。
我有一個類似的問題後,更新到MVC的第2版。我可以導航到指定URL的頁面,但是如果我嘗試使用RedirectToAction(「ActionName」),我得到了同樣的錯誤:「路由表中沒有路由....」在我的情況下,我最終複製了路由條目正在使用URL並刪除了其他參數,現在RedirectToAction也可以使用。很奇怪....但謝謝你的提示。 – Rick 2010-06-28 22:14:54