내가 원하는 깨끗한 URL을 해결하기 및 정의하지 두 경로 : 경로가
[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");
}
}
이 난을 가지고 내 마스터 페이지에서 일반 검색 패널이 있습니다
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 }
);
후 나는 두 가지 작업이 텍스트 상자 및 제출 버튼. /Search
에 게시됩니다. 텍스트 상자의 이름은 query
입니다. 모두 좋고 위대한. Search
에 첫 액션이 실행되지만 RedirectToAction()
에 실패합니다.
제공된 값과 경로 테이블의 경로가 일치하지 않습니다.
왜 작동하지 않는 이유가없는 것 같습니다.
MVC 릴리스 2로 업데이트 한 후 비슷한 문제가 발생했습니다. URL을 지정하는 페이지로 이동할 수 있지만 RedirectToAction ("ActionName")을 사용하려고하면 같은 오류가 발생합니다. "경로 테이블에 경로가 없습니다 ...."제 경우에는 경로 복제가 끝났습니다. 항목은 URL을 사용하여 작동하고 다른 매개 변수를 제거했으며 이제 RedirectToAction도 작동합니다. 아주 이상한 ....하지만 팁 주셔서 감사. – Rick