상대 URL을 사용하고 있습니다. 기본 컨트롤러의 색인 작업의 상대 URL은 "/"입니다. 절대 URL이 필요한 경우
Url.Action("Index", "Search", null, Request.Url.Scheme)
을 사용해보십시오. 기본값은 아무 것도 제공하지 않은 경우 라우팅이 사용하는 컨트롤러/액션입니다
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Search", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
:
은 gloabal.asax에서 당신은 아마도처럼 보이는 라우팅 방식이있다. 마지막 매개 변수에서 컨트롤러 및 조치 속성을 제거한 경우 색인 및 검색은 기본 조치 및 제어기가 중지됩니다. 지금
@Url.Action("Index", "Search")
"/ 검색"은 더 이상 유효한 URL이 아니기 때문에 "Search/Index"가됩니다. 실제로이 작업을 권장하지는 않지만 상황을 이해하기 위해서는 알아두면 유용합니다.
는 경우 기본 경로를하기 전에 그들이 먼저 라우팅을 때렸어 때문에 다음 Url.Action("Search","Index")
의 모든 호출이 URL에 "/ 검색/색인"을 얻을 것이다
routes.MapRoute(
"Index", // Route name
"Search/Index/{id}", // URL with parameters
new { controller = "Search", action = "Index", id = UrlParameter.Optional } // Parameter defaults);
을 추가했다. 그러나 브라우저에 직접 입력 한 경우 작업 또는 컨트롤러를 입력하지 않아도 인덱스 페이지로 이동하게됩니다.
이전에도이 문제가있었습니다. 그것은 인덱스와 같은 컨트롤러에서 나오는 액션의 관습과 관련이 있습니다. 인덱스의 이름을 다른 것으로 변경하고 시도하십시오 –