2016-12-05 25 views
0

コントローラへのアクションリンクを介してバイト配列を渡そうとすると、NULL値を取得します。私は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の回答が良い選択肢ですが、実行可能でない場合(たとえば、バイト配列を別の場所に格納していないなど)、バイト配列を常にBase-64で文字列にエンコードして渡すことができますアクションメソッドに

System.Convert.ToBase64String(Model.checkimage) 

あなたはアクションメソッドでバイト配列に変換する必要があります。

System.Convert.FromBase64String(imageData) 

Base-64エンコードでは、膨らみが増えます(〜33%以上のバイト)。また、一部のブラウザではURLの取得時間に制限があるため、これらの制限に近づかないようにすることができます。

関連する問題