2011-02-09 9 views
0

여러 개의보기 및 컨트롤러에서 참조되는 제품 트리보기가 있습니다. 제품 트리 뷰의 트리보기 항목은 AJAX 및 공용 Action 메소드를 사용하여 동적으로로드됩니다.디자인 : 여러 컨트롤러간에 공유되는 제품 Treeview

제품 treeview의 논리 및 공용 작업 메서드를 SharedController와 같은 공유 컨트롤러로 이동해야합니까? 추천 메뉴가 무엇인가요?

답변

1

burnt1ce, 변함

, 그것은 의존한다 ... 당신은 항상 아약스 (JQuery와 또는이 많이 중요하지 않는 것이 msajax ?? [를 통해 그것을 사용하지만이 질문에 적절한 태그를 추가 할 수 있도록한다면 ]), 다른 제품 모델을로드 할 수 있도록 몇 가지 오버로드가있는 html.helper로 리팩토링하는 것이 좋습니다. (필요한 경우 다양한 제품 하위 클래스를 허용하기 위해 구체적인 클래스가 아닌 제품 인터페이스를 사용하는 것이 좋습니다 ...)

뷰의 컨텍스트에서로드해야하는 경우 그것은 어디에 있고 그것을 html.RenderAction() 메소드를 통해로드합니다.

이것은 확실히 내 초기 생각 일 것입니다. 액션과

+0

어디에서 AJAX 요청에 응답하는 작업 방법을 저장 하시겠습니까? Telerik의 treeview 컨트롤 (http://demos.telerik.com/aspnet-mvc/treeview)을 사용하고 있기 때문에 HTML 도우미로 이동하는 데 필요한 많은 프리젠 테이션 로직이 없습니다. – burnt1ce

+0

이제 타사 telerik 컨트롤 인 treeview에 대한 부분을 추가 했으므로 상황이 바뀝니다. 나는 당신이 이것에 당신의 자신의 논리를 굴리고 있다고 생각했기 때문에, 위의 나의 의견. 그것이 제 3 자 컨트롤이라면, telerik mvc 컨트롤을 사용하는 데 경험이 없으므로 telerik 포럼에서 질문을해야 할 것입니다. 잘못 이해 한 것을 유감스럽게 생각합니다. –

0

ProductController은 제품 데이터 (JSON을 반환?)

Telerik보기 밖으로 철자하는 부분보기를 사용하여 검색 할 수 있습니다. 그 견해에서 아약스 호출로 제품을 얻은 다음 treeview/그 데이터를 업데이트한다고 가정합니다.

<%= Html.Telerik().TreeView() 
      .Name("TreeView") 
      .Items(item => 
      { 
       item.Add() 
        .Text("Mail") 
        .ImageUrl("~/Content/PanelBar/FirstLook/mail.gif") 
        .ImageHtmlAttributes(new { alt = "Mail Icon" }) 
        .Items(subItem => 
        { 
... 
관련 문제