1

ASP MVC 3.0 WebサイトのJavaアプレットに画像(現在はバイトストリーム)を渡す必要があります。

アプレットのドキュメントには、ファイルはHTTPGETによって動的に生成できると書かれています。

動的コンテンツを取得するコントローラーアクションは何を返す必要がありますか?
また、アプレットのHTMLでURLを指定するにはどうすればよいですか?

コントローラからファイルの結果を返し、ファイル名を入れる場所に「Html.RenderAction」呼び出しを埋め込もうとしましたが、このエラーが発生します(以下に含まれるHtmlフラグメントで)

CS1502:「System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)」に最適なオーバーロードされたメソッドの一致にいくつかの無効な引数があります

HTMLフラグメント

<param name="Filename" value="@Html.RenderAction("DownLoadImage", "Document", new { DocumentId = Model.DocumentId, Page = Model.Page })">

コントローラのアクション

public ActionResult DownloadImage(string DocumentId, int PageNo)
{
    byte[] bytes = documentProvider.GetImage(DocumentId, PageNo);
    return File(bytes, "image/tiff");
}

このDownloadImageアクションは、「画像のダウンロード」ActionLinkで使用すると機能します。

他にご不明な点がございましたら、お気軽にお問い合わせください。

私が何か馬鹿げたことをしている、または非常に明白な何かを見逃している場合はお詫びします。私はWeb開発についてほとんど知りません。これは、私の最初のASP MVCアプリケーションであり、Javaアプレットを初めて使用したものです。。。優しくしてください

ありがとう。

4

1 に答える 1

2

synatxエラーはRazorによるもので、Writerで使用されている古いWebFormsビューモデルとはレンダリングが異なります。しかし、それはここでは少し赤いニシンです-あなたは実際にはとにかくそれをこのようにしたくありません-これはあなたがHTMLにストリーミングしている画像データのバイトを落とそうとしています。

私がやりたいと思うのは、画像をレンダリングしているコントローラーアクションへのURLをアプレットに渡すことです。それはそれをネットワークから読み取り、それからそれを行います。コードはおそらく次のようになります。

<param name="Filename" value="@Url.Action("DownLoadImage", "Document", new { DocumentId = Model.DocumentId, Page = Model.Page })">

アプレットを使用する時間がないので、それでうまくいくかどうかはわかりません。絶対URIにする必要がある場合もあれば、内部での動作によっては認証に問題がある場合もあります。

于 2011-07-05T12:01:31.520 に答える