ASP MVC Как передать поток байтов в памяти Java-апплету? - PullRequest
1 голос
/ 05 июля 2011

Мне нужно передать изображение (в настоящее время поток байтов) в Java-апплет на веб-сайте ASP MVC 3.0.

В документах для апплета сказано, что файл может быть сгенерирован динамическиHTTP GET .

Что должно вернуть действие Controller, которое возвращает динамический контент?
Кроме того, как мне указать URL-адрес в Html для апплета?

I 'я пытался вернуть результат File из контроллера и встраивать вызов «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.

Пожалуйста, дайте мне знать, если вам нужно что-нибудь еще.

АполОги, если я делаю что-то глупое или упускаю что-то очень очевидное.Я очень мало знаю о веб-разработке, это мое первое приложение ASP MVC, и я впервые использовал Java-апплет.,, пожалуйста, будьте нежнее

Спасибо.

1 Ответ

2 голосов
/ 05 июля 2011

Ошибка synatx от Razor - она ​​визуализируется иначе, чем старые модели представления WebForms, которые используются Writer. Но это немного красная сельдь - вы на самом деле не хотите делать это так или иначе - это попытка отбросить байты данных изображения, которые вы передаете, в HTML.

Что я думаю вы хотите сделать, это передать апплету URL-адрес действия контроллера, которое отображает изображение. Он прочтет это с провода и сделает это. Ваш код должен выглядеть примерно так:

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

Нет времени на сиденье с апплетом, поэтому я не уверен, что это поможет. Возможно, вам понадобится сделать его абсолютным URI, или у вас могут возникнуть проблемы с аутентификацией в зависимости от того, как все это работает.

...