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})
이지만 ActionLink
은 Length=4
으로 번역되었습니다. html 문자열처럼 객체보다 안전한 것을 전달할 수 있다는 것을 알고 있습니다. 그러나 내가 여기서 잘못한 것을 알고 싶다. 뷰를 통해 객체를 전달하여 수정하는 방법.
을이 문제를 해결하는 데 도움이 될 것입니다
희망 친절하게 당신의 생각을 알려, 또는
감사 을 피드백한다 :
은 그래서 코드는 모양을 모델을 부분에 전달하는 것만이 아닌가? –
이 부분보기는 사이트 맵을 표시하고 쿼리 데이터베이스로 모델 데이터를 가져올 수 있습니다. 정상적인 경우 모든 페이지를 생성 할 수 있습니다. 일반적으로 부분 뷰로 전달해야하는 유일한 데이터는 내 현재 페이지로, 다른 색상으로 표시됩니다. 그러나 특정 상황에서 사이트 맵의 링크에는 경로 개체가 필요합니다 (현재보기에 따라 다름). 그게 내 질문에 관한거야. 경로 객체를 부분 뷰에 전달할 때. 부분의 ActionLink()는 올바르게 표시 할 수 없습니다. 나머지 데이터는이 부분 뷰에 유용하지 않습니다. – Chris
왜? 모델을 기반으로 기본 뷰에서 코드를 사용하여 이미 작업하고 있다면'@ Html.Partial ("TopNavBar", Model)'을 사용하여 부분에 모델을 전달한 다음 이전에 사용한 코드를 부분. 그러나 어쨌든'@ Html.Action()'을 사용하여 메뉴의 일부분을 반환하는'[ChildActionOnly]'메서드를 호출해야합니다. –