我是MVC(來自面向對象的C#exe應用程序)和Stackoverflow的新手。我一直在努力嘗試使用MVC高效地運行代碼。我有從數據庫返回的Model數據,並且該數據是一個字節字段,它是一個jpeg圖像。在這個階段,我已經打了一個電話到數據庫...渲染圖像已經在視圖中的字節數據
現在我堅持的是,一旦填充的模型數據在視圖中呈現,我不能簡單地遍歷它,在每個數據行中渲染圖像。我發現使它工作的唯一方法是調用和返回FileContentResult的Action方法,但這需要重新爲每個圖像重新調用一次數據庫。
對於解決方案我已經試過了已抓獲了以下問題三種不同的方法:
- 我似乎無法通過一個操作方法的字節數組傳回給控制器,以滿足 MVC怎麼想接收 視圖中的FileContentResult。 Action方法只想接受簡單的類型。
- 我顯然不想讓控制器回到我已經在視圖中的字節 數據的數據庫,特別是當這個將 涉及我的模型數據中的每個條目的多次往返。
- 使用Data Uri工作,但它尚未支持足夠的瀏覽器。
有人能告訴我什麼是處理這種問題的最佳方法嗎?我是否需要解決問題1或問題2,還是有一種我錯過的方法?
這裏是我試圖最初使用在問題1的字節數組傳回給控制器,所以我可以使FileContentResult代碼:
<img src=" @{Html.RenderAction("RenderMemberImage", "Home", new { @pic = x.ThumbnailData });}" />
[HttpGet]
public FileContentResult RenderMemberImage(byte[] pic)
{
return new FileContentResult(pic, "mime/jpeg");
}
謝謝你,但我不認爲你看我的後整體。我不想用字節數據回到服務器。我已經有客戶端上的字節數據。我想在客戶端使用它。我試圖找到一種方法,我不必回到數據庫以及Web服務器,但最好是我不想回到服務器。那有意義嗎? – JDev
其實我讀過你的整篇文章,據我所知,除了Data URI方法之外,瀏覽器不支持你嘗試創作的場景。正如你可能知道的那樣,image標籤的'src'屬性將鏈接回服務器上的一個路徑,該路徑返回HttpResponse中的圖像。如果你不想設置你的應用程序來做到這一點,你將游泳上游試圖讓這個工作在多個瀏覽器上。 –
謝謝。就像我在上面回答Shyju有關數據URI一樣,這聽起來像我想做的事情還沒有在網絡世界中做好準備,我需要做的不是將圖像存儲在數據庫中,而是從文件/應用程序服務器標準的http地址。你怎麼看? – JDev