2016-12-05 27 views
0

當我試圖通過一個操作鏈接傳遞一個字節數組到控制器時,我得到一個空值。我是MVC的新手。基本上,我需要下載圖像(字節數組)作爲pdf。需要通過@actionlink傳遞字節數組

檢視:

if(Model.checkimage != null){ 
    @html.ActionLink("Download PDF", "DownloadPDF", "Transaction", new {Check = Model.checkimage}); 
} 

控制器:

public ActionResult downloadPDF (byte[] Check) 
+0

即使這是可能的,它幾乎肯定會超出查詢字符串限制並引發異常。將文件的ID傳遞給方法。 –

回答

0

傳字節數組作爲操作方法的參數是不是一個好主意。如果您從數據庫或文件中檢索這些文件,那麼您可能會傳遞一些唯一標識符或文件路徑作爲參數&,然後在控制器中寫入邏輯。

0

Mady的答案是更好的選擇,但如果它不可行(例如,您不在其他地方存儲字節數組),那麼您總是可以將字節數組Base64編碼爲一個字符串,然後通過進入動作方法

System.Convert.ToBase64String(Model.checkimage) 

您必須將其轉換回您的操作方法中的字節數組。基地-64編碼確實增加了一些臃腫(多33%的字節);但是,基地-64編碼確實增加了一些臃腫(多33%的字節)。另外,有些瀏覽器對URL的可用時間有限制,因此您可能需要確保您沒有接近任何限制。