2017-05-19 1 views
1

actionlink() 목록이있는 최상위 메뉴 막대가 있습니다. 그 중 하나는 컨트롤러에 데이터를 전달합니다.부분보기로 데이터 전달 ActionLink

int? partCategoryID = Model.SelectedPartCategory == null ? -1 : Model.SelectedPartCategory.PartCategoryID; 
@Html.ActionLink("New Part", "NewPart", new { PartCategoryID = partCategoryID }) 

잘 작동합니다. 그런 다음 액션 링크 수가 너무 빠르게 증가하고 있음을 발견했습니다. 그래서 사이트 맵을 만들려고합니다. 뷰는 모든 동작 링크 데이터를 부분 뷰로 전달합니다. 그리고 부분은 모든 최상위 메뉴 막대를 처리합니다. 원래 (간체)보기에서

:

Dictionary<string, object> actionRouteValueDict = (Dictionary<string, object>)ViewData["Routes"]; 
@Html.ActionLink("New Part", "NewPart", actionRouteValueDict["NewPart"]) 

어쨌든, 새로운 @Html.Action 올바르게 개체를 처리 할 수 ​​없습니다 : 부분보기에서

Dictionary<string, object> actionRouteValueDict = new Dictionary<string, object>(); 
int? partCategoryID = Model.SelectedPartCategory == null ? -1 : Model.SelectedPartCategory.PartCategoryID; 
actionRouteValueDict.Add("NewPart", new { PartCategoryID = partCategoryID }); 
@Html.Partial("TopNavBar", new ViewDataDictionary { {"Routes", actionRouteValueDict} });  

, 그것은 "같은 일을하고있는"것 , 나는 디버그 할 수 있고 actionRouteValueDict["NewPart"]은 여전히 ​​정확하지만 ({PartCategory = -1})이지만 ActionLinkLength=4으로 번역되었습니다. html 문자열처럼 객체보다 안전한 것을 전달할 수 있다는 것을 알고 있습니다. 그러나 내가 여기서 잘못한 것을 알고 싶다. 뷰를 통해 객체를 전달하여 수정하는 방법.

+1

을이 문제를 해결하는 데 도움이 될 것입니다

@Html.ActionLink("New Part", "NewPart", actionRouteValueDict["NewPart"], null) 

희망 친절하게 당신의 생각을 알려, 또는

감사 을 피드백한다 :

은 그래서 코드는 모양을 모델을 부분에 전달하는 것만이 아닌가? –

+0

이 부분보기는 사이트 맵을 표시하고 쿼리 데이터베이스로 모델 데이터를 가져올 수 있습니다. 정상적인 경우 모든 페이지를 생성 할 수 있습니다. 일반적으로 부분 뷰로 전달해야하는 유일한 데이터는 내 현재 페이지로, 다른 색상으로 표시됩니다. 그러나 특정 상황에서 사이트 맵의 링크에는 경로 개체가 필요합니다 (현재보기에 따라 다름). 그게 내 질문에 관한거야. 경로 객체를 부분 뷰에 전달할 때. 부분의 ActionLink()는 올바르게 표시 할 수 없습니다. 나머지 데이터는이 부분 뷰에 유용하지 않습니다. – Chris

+0

왜? 모델을 기반으로 기본 뷰에서 코드를 사용하여 이미 작업하고 있다면'@ Html.Partial ("TopNavBar", Model)'을 사용하여 부분에 모델을 전달한 다음 이전에 사용한 코드를 부분. 그러나 어쨌든'@ Html.Action()'을 사용하여 메뉴의 일부분을 반환하는'[ChildActionOnly]'메서드를 호출해야합니다. –

답변

1

크리스, 우리는 HTML 속성

난 당신이 ActionLink의 아래에 과부하 사용하는 희망에 null을 설정하는 것을 잊지 때 = 4 문제가 발생합니다 길이에 일반적으로이 번역 :

enter image description here

그렇다면 IDictionary htmlAttribute null 인 최종 매개 변수에 null을 설정하고 작동하는지 확인하십시오. 왜 당신이 KARTHIK