2012-10-26 4 views
2

ASP MVC 3을 사용하여 데이터를 표시 할 테이블을 여러 개 만들려면 View에 전달하는 뷰 모델을 만들었습니다. 그러나 차트 도우미를 사용하여 차트/그래프 이미지의 형태로 일부 데이터를 제시하고자합니다.ASP MVC 3 - ViewModel의 차트

이 차트에 기존의 뷰 모델을 재사용 할 수 있습니까, 아니면이 차트를 만들 때 다른 MVC주기를 거쳐야합니까? 내가보기에 이미 가지고있는 것과 동일한 정보를 얻기 위해 데이터베이스로의 왕복 여행을 막으려하고있다. 내가 타격을 가하고있는 "데이터베이스"는 실제로이 정보를 얻을 필요가있을 때마다 값 비싼 로그인, 가져 오기, 로그 아웃주기가 필요한 API입니다.

이것이 가능하지 않다면 "세상의 종말"이 아니지만, 이것이 실전 상태가되게하는 몇 가지 매끄러운 방법이 있어야한다는 느낌이 들었습니다.

감사합니다.

+0

해당보기를 떠나지 않는 한. 그 뷰 모델은 여전히 ​​사용할 수 있습니다. –

+0

그러나 차트 이미지를보기와 같이 "나란히"만들 수 있습니까? img 태그에 src 속성이 있다는 사실은 최소한 다른 컨트롤러를 공격해야한다는 것을 의미합니다. ViewModel을 컨트롤러에 전달하여 이미지를 사용하고 생성 할 수 있습니까? –

+0

컨트롤러가 그것을 받기를 기대하는 한 아무런 문제가 없어야합니다. –

답변

0

결과를 서버에 캐시합니다. 그러나 이것은 상당한 양의 복잡성을 초래합니다. 그러나 귀하의 질문은 응용 프로그램 데이터를 캐싱하기위한 최종 사용 사례처럼 들립니다.

Here's an MSDN article 서버 측 캐싱을 구현하도록 선택하면 ASP.NET의 캐싱을 활용할 수 있다면 좋을 것입니다.

+0

캐싱이 나를 위해가는 길일 것 같아서 그것이 복잡 할 정도로 가까이서 보지 않습니다! 이것은 내 질문에 답할뿐만 아니라 일반적으로 개체/데이터를 서버에 지속 기간 동안 유지했던 것에 대해서도 대답합니다. 감사! –

0

테이블과 뷰 모델의 데이터를 재사용 할 수 있다면 분명합니다.

한 가지 방법은보기 내에 양식에 포함 된 숨겨진 필드에보기 모델을 렌더링하는 것입니다. 그런 다음이 양식을 서버에 게시하면 뷰 모델에 바인드됩니다.

죄송합니다. 더 구체적인 것은 아니지만보기의 모양과 모양을 보지 않으면 어렵습니다.

+0

이보기와 연관된 양식이 없습니다. 역순으로하지 않는 한, View에는 원하는 이미지를 가져 오는 데 사용되는 src 속성이있는 img 태그가 있습니다. 이 경우 이미지는 일부 데이터에서 동적으로 생성 된 차트입니다. 내가 생각할 수있는 유일한 두 가지 해결책은 해당 요청에서 모든 데이터를 다시 가져 오는 것 또는 ViewModel 데이터를 사용하여 매우 긴 GET 문자열을 만들고이를 img 태그의 src 속성으로 포함시키는 것입니다. –

+0

별칭이 있습니까? 이것은 이전의 것과 정말 비슷합니다! 어떻게 든 쿼리 문자열이나 게시물을 통해 테이블 ​​데이터를 다시 서버로 가져와야합니다. 쿼리 문자열을 통해 수행하는 경우 최소한 img 태그로 넘겨주고 브라우저가 나머지 작업을 수행하도록 할 수 있습니다. 게시물을 가지고 작업하는 경우 ajax 호출을 코딩하고 반환 이미지 데이터를 직접 처리해야합니다. –

+0

또 다른 옵션은 원본 데이터에 더 빨리 액세스 할 수있는 캐시 서버쪽에 데이터를 저장하는 것입니다. –

0

이것은 사용자가 찾고있는 것이 아니지만 Google Charts를 사용하는 것이 좋습니다. 그들은 HTML 5와 SVG를 사용하며 정말 멋지게 보입니다. 내 대답은 여기를 참조 Google Combo Charts? 어디서 ASP.NET MVC에서 데이터베이스에 연결하는 방법을 보여줍니다.

+0

이 대답은 또한 매우 유용하지만, HTML 5를 올바르게 사용하기 위해 HTML 5를 배우는 데 더 많은 시간이 걸릴 것이라고 생각합니다. 나는 미래를 위해 이것을 주목할 것이다. 감사! –

+0

HTML 5는 모두 알아서 할 필요가 없습니다. 당신은 단지 자바 스크립트를 알고 변수를 설정해야합니다. 그건 매우 쉬워요. 도움이된다고 생각하는 답변을 upvote하는 것을 잊지 마십시오. – user1477388

+0

나는 노력했다. 그러나 나는 평판 위에서 아직도 조금 부족하다! 어느 쪽이든 고마워, 내가 할 수있을 때 다시 방문하고 upvote하려고합니다. –