2012-10-26 58 views
2

使用ASP MVC 3,我創建了一個視圖模型,將其傳遞給視圖以創建許多表來顯示數據。但是,我還想使用圖表幫助程序以圖表/圖形圖像的形式呈現一些數據。ASP MVC 3 - 來自ViewModel的圖表

是否可以重用這些圖表的現有視圖模型,還是需要通過另一個MVC循環來創建此圖表?我試圖阻止返回數據庫的目的是爲了獲得我已經在視圖中掌握的相同信息。我打的「數據庫」實際上是一個API,需要一個昂貴的登錄,讀取,註銷週期,我需要獲取這些信息。

這不是「世界的盡頭」,如果這是不可能的,但它感覺應該有一些光滑的方式來做到這一點,我只是失蹤。

謝謝!

+0

只要你不離開那個觀點。該視圖模型仍然適用於您。 –

+0

但是,有可能建立圖表圖像與視圖「一致」? img標籤具有src屬性的事實意味着至少我需要擊中另一個控制器。是否有可能將ViewModel BACK傳遞給控制器​​以供它使用並生成圖像? –

+0

只要控制器期望收到它,應該沒有問題。 –

回答

0

我會在服務器上緩存結果。儘管如此,這確實引入了相當多的複雜性。但是,您的問題聽起來像是緩存應用程序數據的權威用例。

Here's an MSDN article如果您選擇實現服務器端緩存,那麼如果您可以利用ASP.NET的緩存,應該可以解決這個問題。

+0

它看起來像緩存將是我的出路,它看起來並不像我想象的那麼複雜!這不僅解答了我的問題,而且還解答了我在一段時間內將對象/數據持久保存到服務器的一般方法。謝謝! –

0

如果確實有可能重新使用表格和視圖模型中的數據。

一種方法是將視圖模型渲染到視圖中包含在窗體中的隱藏字段中。然後,您可以將此表單發佈到服務器,然後將其綁定回您的視圖模型。

對不起,我不能更具體,很難沒有看到視圖模型和形狀的意見。

+0

沒有與此視圖關聯的窗體。除非我向後做,否則視圖只是具有一個帶有src屬性的img標籤,用於獲取所需的圖像。在這種情況下,圖像將是來自某些數據的動態生成的圖表。我現在唯一能想到的兩個解決方案就是在請求中再次獲取所有數據,或者使用ViewModel數據創建非常長的GET字符串,並將其作爲src屬性添加到img標記中。 –

+0

你有別名嗎?這和以前的東西非常相似!不知何故,你必須將你的表數據返回給服務器,無論是通過查詢字符串還是通過郵件。如果你通過查詢字符串來完成,至少你可以把它交給img標籤,讓瀏覽器完成剩下的工作。如果你使用post,你必須編寫ajax調用並自己處理返回的圖像數據。 –

+0

另一種選擇可能是將數據存儲在緩存服務器端,這樣可以更快地訪問源數據。 –

0

這可能不是您要查找的內容,但我建議您使用Google圖表。他們使用HTML 5和SVG,他們非常好看。在這裏看到我的答案Google Combo Charts?,其中展示瞭如何將它連接到ASP.NET MVC中的數據庫。

+0

這個答案也很有用,但我認爲需要更多時間學習HTML5才能正確使用它。不過,我會在未來注意到這一點。謝謝! –

+0

您實際上並不需要知道任何HTML 5,因爲它全部都是爲您完成的。你只需要知道JavaScript並設置變量。這很容易。請記住點贊您發現有幫助的答案。 – user1477388

+0

我試過了,但是我對聲望還是有點欠缺!無論如何,我會嘗試重新訪問,並在我能夠時加註。 –