IT Share you

경로 값을 포함한 URL.Action ()

shareyou 2020. 12. 8. 20:27
반응형

경로 값을 포함한 URL.Action ()


ASP.Net MVC 4 앱이 있으며 다음과 같은 Url.Action 도우미를 사용하고 있습니다. @Url.Action("Information", "Admin")

이 페이지는 새 항목을 추가하고 관리자 프로필을 편집하는 데 사용됩니다. URL은 다음과 같습니다.

 Adding a new:       http://localhost:4935/Admin/Information
 Editing Existing:   http://localhost:4935/Admin/Information/5 <==Admin ID

나는에있을 때는 Editing Existing사이트의 섹션과 내가 다음 링크를 클릭 새 관리자를 추가 할 것을 결정한다 :

 <a href="@Url.Action("Information", "Admin")">Add an Admin</a>

그러나 위의 링크가 실제로 http://localhost:4935/Admin/Information/5. 이는 내가 해당 페이지에서 기존 관리자를 편집 할 때만 발생합니다. 사이트의 다른 모든 곳에서 올바르게 연결됩니다.http://localhost:4935/Admin/Information

다른 사람이 본 적이 있습니까?

최신 정보:

RouteConfig :

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );    

현재 라우팅 스키마를 기반으로 생성 된 mvc의 발신 URL입니다.

정보 작업 방법에는 id 매개 변수가 필요하고 경로 컬렉션에는 현재 요청 된 url (/ Admin / Information / 5)의 ID가 있으므로 id 매개 변수는 기존 경로 컬렉션 값에서 자동으로 가져옵니다.

이 문제를 해결하려면 UrlParameter를 사용해야합니다.

 <a href="@Url.Action("Information", "Admin", new { id = UrlParameter.Optional })">Add an Admin</a>

이 형식으로도 사용할 수 있습니다.

<a href="@Url.Action("Information", "Admin", null)"> Admin</a>

참고 URL : https://stackoverflow.com/questions/19107061/url-action-include-route-values

반응형