[c#] ActionLink의 ID를 컨트롤러에 전달하는 ASP.NET MVC

컨트롤러의 html.ActionLink에서 보내는 ID를 검색 할 수 없습니다. 여기에 제가하려는 작업이 있습니다.

<li>
    <%= Html.ActionLink("Modify Villa", "Modify", "Villa", new { @id = "1" })%></li>


    public ActionResult Modify(string ID)
    {

        ViewData["Title"] =ID;
        return View();
    }

이것이 내가 따라 간 튜토리얼에서 권장하는 내용이지만 작동하지 않으며 URL 끝에? Length = 5를 추가합니다!

미리 감사드립니다!

편집 : 여기에 내가 사용하고있는 경로가 기본입니다.

        routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
        );

누군가가 아래의 두 가지 제안을 반대했지만 솔루션을 게시하지 않은 것 같습니다!



답변

ActionLink의 올바른 오버로드를 사용하고있는 것 같지 않습니다. 이 시도:-

<%=Html.ActionLink("Modify Villa", "Modify", new {id = "1"})%>

이것은보기가 / Views / Villa 폴더에 있다고 가정합니다. 그렇지 않다면 나는 당신이 필요하다고 생각합니다 :-

<%=Html.ActionLink("Modify Villa", "Modify", "Villa", new {id = "1"}, null)%>


답변

MVC 4에서는 한보기에서 다른 컨트롤러를 통해 Id 또는 기본 키를 전달하는 다른 컨트롤러로 연결할 수 있습니다.

@Html.ActionLink("Select", "Create", "StudentApplication", new { id=item.PersonId }, null) 


답변

ID 앞에 @를 넣지 마십시오.

new { id = "1" }

프레임 워크는 매개 변수 / 경로에 불일치가있을 때? Lenght로 “번역”합니다.


답변

MVC 5에서 매우 유사합니다.

@Html.ActionLink("LinkText", "ActionName", new { id = "id" })


답변

ID는 @사인 인 앞에서도 작동 하지만 그 뒤에 하나의 매개 변수를 추가해야합니다. 그건null

다음과 같이 보입니다.

@Html.ActionLink("Label Name", "Name_Of_Page_To_Redirect", "Controller", new {@id="Id_Value"}, null)


답변