IT story

Html.ActionLink를 사용하여 다른 컨트롤러에서 작업 호출

hot-time 2020. 4. 23. 08:04
반응형

Html.ActionLink를 사용하여 다른 컨트롤러에서 작업 호출


를 사용하여 컨트롤러 사이를 탐색하려고합니다 ActionLink. 나는 예를 들어 내 문제를 말할 것이다.

Hat 컨트롤러의 인덱스보기에 있으며 아래 코드를 사용하여 제품 컨트롤러의 세부 정보 작업에 대한 링크를 만들려고합니다.

<%= Html.ActionLink("Details", "Details", "Product", new { id=item.ID }) %>

제품 제어기의 세부 사항에 대한 링크를 작성하는 대신 Hat 제어기에서 세부 사항 조치에 대한 링크를 생성하고 끝에 길이 매개 변수를 추가합니다.

Hat/Details/9?Length=7

HTML.ActionLink이 문제로 인해 컨트롤러 간을 전환하는 데 사용할 수 없습니다 . 내가 뭘 잘못하고 있는지 알려 주시면 감사하겠습니다. 감사

추신 : MVC와 함께 제공되는 기본 경로 설정을 사용하고 있습니다

routes.MapRoute("Default", "{controller}/{action}/{id}", 
                     new { controller = "Home", action = "Index", id = "" } );

당신이 원하는 것은이 과부하입니다.

//linkText, actionName, controllerName, routeValues, htmlAttributes
<%=Html.ActionLink("Details", "Details", 
    "Product", new {id = item.ID}, null) %>

해당 매개 변수를 사용하면 잘못된 오버로드 된 기능 / 방법이 트리거됩니다.

나를 위해 일한 것 :

<%= Html.ActionLink("Details", "Details", "Product", new { id=item.ID }, null) %>

HtmlHelper.ActionLink (string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes)를 실행합니다.

MVC 4를 사용하고 있습니다.

안녕!


MVC Futures 어셈블리를 얻는다면 (권장 할 것임) ActionLink와 람다를 생성 할 때 제네릭을 사용하여 경로를 구성 할 수 있습니다.

<%=Html.ActionLink<Product>(c => c.Action( o.Value ), "Details" ) %>

선물 조립은 여기에서받을 수 있습니다 : http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471


다음과 같이 명확하게하기 위해 명명 된 매개 변수를 사용하여 이러한 도우미를 작성하는 것이 좋습니다.

@Html.ActionLink(
    linkText: "Details",
    actionName: "Details",
    controllerName: "Product",
    routeValues: new {
        id = item.ID
    },
    htmlAttributes: null
)

당신은 ActionLink의 과부하에 잘못 맞았습니다. 대신 사용해보십시오.

<%= Html.ActionLink("Details", "Details", "Product", new RouteValueDictionary(new { id=item.ID })) %>

그것을 시도해보십시오 그것은 잘 작동합니다

  <%:Html.ActionLink("Details","Details","Product",  new {id=item.dateID },null)%>

다른 해결책은 Urlhelper 객체 를 사용하여 다음과 같이 태그 href속성 을 설정하는 것입니다 <a>.

<a href="@Url.Action("Details", "Product",new { id=item.ID }) )">Details</a>

이 코드는 부분적으로 나를 위해 일했습니다.

<a href="/Content/Index?SubCategoryId=@item.Id">@item.Title</a>

참고 URL : https://stackoverflow.com/questions/776781/using-html-actionlink-to-call-action-on-different-controller

반응형