http://localhost:xyz/HelloWorld
은 Home
컨트롤러의 HelloWorld
작업으로 연결됩니다.Html.ActionLink는 URL에 따라 다른 결과를 산출합니다.
URL을 렌더링하는 페이지에서 동일한 페이지 (예 : 현재 접속중인 페이지에 대한 링크)를 가리키는 Html.ActionLink가 있습니다.
페이지가 http://localhost:xyz/HelloWorld/
(후행 슬래시)으로로드 된 경우에만이 링크가 페이지를 가리키게됩니다. 페이지가 http://localhost:xyz/HelloWorld
(슬래시 없음)으로로드 된 경우 컨트롤러 의 Index
작업으로 이동합니다.
여러 오버로드를 시도했지만이 문제의 원인이나 해결 방법을 알 수 없습니다.
Html.ActionLink("Hello World", "HelloWorld", "Home");
Html.ActionLink("Hello World", "HelloWorld", "Home", null, null);
Html.ActionLink("Hello World", "HelloWorld", "Home", new { arg = 0 }, null);
이들은 모두 똑같은 결과가 있습니다. 후행 슬래시가있는 경우 제대로 작동하며 그렇지 않은 경우 http://localhost:xyz/
으로 연결됩니다.
누구든지이 동작이나 해결 방법을 설명 할 수 있습니까?
편집 (아마도 관련?) :
arg
가 존재하지 0, 같은 페이지가 http://localhost:xyz/HelloWorld/arg
에 표시하고, (완벽하게 잘 작동)은 "안녕하세요"링크와 유사한 링크가있다 그것은 완벽하게 작동합니다.
Html.ActionLink("Argument", "HelloWorld", "Home", new {arg = arg}, null);
이없이 슬래시가 존재하는지 여부, 올바르게 자체를 가리킨다.
ROUTES :
routes.MapRoute(
"HomeStart",
"",
new { controller = "Home", action = "Index" }
);
routes.MapRoute(
"Hello World",
"HelloWorld/{arg}",
new {controller = "Home", action = "HelloWorld", arg = ""}
);
경로 설정 방법을 확인할 수 있습니까? –
귀하의 인수는 선택 사항으로 설정해야합니다 – diaho
@ M.Babcock 경로가 추가되었습니다 – yoozer8