2011-09-14 2 views
0

음, "stats"웹 사이트를 만들고 있습니다. 템플릿, 작은 데이터 및 구조가 이미 있습니다.MVC Ajax 차트 컨트롤러

Google Charts API, 특히 차트 모양이 좋아서 확장 기능으로 HtmlHelper를 만들었습니다. 다음과 같이 불러올 수 있습니다.

@Html.GoogleChart("Types", 300, 300, GChartType.Pie, (List<KeyValuePair<string, int>>)ViewBag.MyData) 

여러 오버로드가 있으며 여러 차트 유형과 단일/다차원 데이터를 지원합니다. 차트 이미지의 전체 html 코드를 반환합니다.

오픈 소스로 몇 주 안에 도우미를 출시 할 예정입니다. 몇 가지 최종 버그를 수정하고 있습니다.

자세히 알 수 있듯이 KeyValuePair List를 ViewBag를 통해 View에 전달하므로 해당 데이터를 사용하여 차트를 생성 할 수 있습니다.

이 작업은 정상이지만 차트를 생성하는 데 동일한 데이터를 사용하는 여러 컨트롤러가 마주하고 있으며 DRY 코드를 지정하려고합니다. Jedi Masters가이 젊은 파다완을 도울 수 있습니까?

가 나는 두 가지 문제가 있다고 생각 : 뷰에서 차트를 repeate하지하는 방법

  • ;
  • 여러 컨트롤러의 데이터베이스에서 통계/필터링 된 데이터를 검색하지 않는 방법.

이 두 가지 문제에 직면하여 어떻게 해결할 수 있습니까?

  • 차트 도우미가 이미 설정된 상태로 부분 뷰를 만드시겠습니까?
  • 각 차트의 Actions로 ChartController를 만드시겠습니까?
  • 데이터를 검색하고 구성하는 컨트롤러를 만드시겠습니까?
  • 데이터를 가져 와서 정리 된 데이터를 여러 컨트롤러로 반환하는 간단한 클래스를 만드시겠습니까?
  • 도우미를 사용하여 만든 차트의 URL 만 반환하도록 클래스를 만드시겠습니까?
  • 도표 및 데이터 용 컨트롤러 모두?
  • Aysa가 theese 친구들에게 전화를 걸게 하시겠습니까?

가능성을 이해하고 경로를 표시 할 수있는 사람이 있습니까?

여기에 시간을내어 주셔서 감사합니다.

답변

2

말인지 정확히 모르겠지만, 반복되는 코드의 양을 관리 할 경우 뷰에서 차트를 repeate하지하는 방법 (소형 - 한 - 라이너과 같이) 그것은 아마도 반복 할 큰 일이 아닙니다. 반복하지 않는 것보다 반복하지 않으려 고 노력하면 반복적으로 걱정할 가치가 있습니다.

어떻게 한 번 이상 동일한 데이터를 더 얻는 방법을 피하기 위해 당신은 의미합니까 여러 컨트롤러

에 데이터베이스에서 통계/필터링 된 데이터를 검색 할 수 있습니다? 그렇다면 중개자에게 데이터를 가져와 특정 차트 요청에 대신 전달해야합니다. 원본 데이터 원본을 두 번 이상 저장하지 않아도되지만이 설정을 얻는 데 필요한 많은 작업이 있으므로 가치가 있는지 확인하기 위해 분석을해야합니다 (장단점 등).