를 사용하여 컨트롤러 사이를 탐색하려고합니다 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를 사용하고 있습니다.
안녕!
답변
다음과 같이 명확하게하기 위해 명명 된 매개 변수를 사용하여 이러한 도우미를 작성하는 것이 좋습니다.
@Html.ActionLink(
linkText: "Details",
actionName: "Details",
controllerName: "Product",
routeValues: new {
id = item.ID
},
htmlAttributes: null
)
답변
MVC Futures 어셈블리를 얻는다면 (권장 할 것임) ActionLink 및 람다를 생성 할 때 제네릭을 사용하여 경로를 구성 할 수 있습니다.
<%=Html.ActionLink<Product>(c => c.Action( o.Value ), "Details" ) %>
선물 조립은 여기에서받을 수 있습니다 : http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471
답변
당신은 ActionLink의 과부하에 잘못 맞았습니다. 대신 사용해보십시오.
<%= Html.ActionLink("Details", "Details", "Product", new RouteValueDictionary(new { id=item.ID })) %>
답변
그것을 시도해보십시오 그것은 잘 작동합니다
<%:Html.ActionLink("Details","Details","Product", new {id=item.dateID },null)%>
답변
다른 해결책은 Url
helper 객체 를 사용하여 다음과 같이 태그 의 href
속성 을 설정하는 것입니다 <a>
.
<a href="@Url.Action("Details", "Product",new { id=item.ID }) )">Details</a>