2011-03-21 25 views
3

我有一張圖表,我想用網站上的圖片來表示。問題是基於圖的當前狀態動態生成此圖像。圖表和ASP.Net MVC

我使用ASP.Net MVC 3與C#。

我一直在考慮使用某種工具(Graphviz等)在硬盤上生成映像,然後將文件的路徑傳遞給視圖。

安全性不是一個真正的問題,因爲這只是基於內部項目的工作,所以它的實施起來更加重要。

我一直在嘗試quickgraph,並最終我有它生成的DOT文件(顯然它忽略了我的嘗試,使PNG的),但代碼失敗,因爲該程序無法訪問生成文件的位置。不過,我想這很容易解決。

你有什麼建議,我怎麼能做到這一點(如果我應該做一些完全不同的東西,或者我可以如何獲得DOT文件呈現爲PNG)?

最好的問候, 丹尼爾

+1

看看這個:http://stackoverflow.com/questions/319835/new-asp-net-charting-controls-will-they-work-with-mvc-eventually#320891 – gideon 2011-03-21 11:33:58

+0

謝謝,看起來有點在途中。一個問題是,我可能(我不完全確定這一點)必須運行graphwiz爲了生成一個圖像,這意味着我必須寫一個文件到磁盤,運行graphwiz可執行文件,然後加載圖像。 – DkM 2011-03-21 16:42:19

回答

2

只是想指出,我解決了這個使用谷歌圖片圖表,他們有實驗性的Graphviz支持:http://code.google.com/apis/chart/image/docs/gallery/graphviz.html

簡單地生成一個URL,並在網頁上插入一個外部圖像。

+0

Google Chart Tools功能非常強大,看起來非常專業。我會推薦他們! http://code.google.com/apis/chart/ – 2011-08-25 06:40:15

0

如果圖形庫允許你,結果寫入內存流,並用鑰匙將其放置在高速緩存(System.Web.HttpRuntime.Cache)。

使用該鍵在視圖中生成img標籤並指向控制器('圖像')中的操作('查看'?),如「/ Image/View/392838」。

創建此控制器並從那裏查看和提供內容(確保包含適當的MIME類型,內容類型等)。

在緩存中爲對象指定一個不錯的生命週期,例如15秒,滑動到期。

+0

嗨,悲傷graphwiz來作爲一個EXE(至少這是做它的默認方式),所以它不可能直接獲取它的內存流。 – DkM 2011-08-24 13:23:54