1

我需要将图像(当前是字节流)传递给 ASP MVC 3.0 网站中的 Java Applet。

小程序的文档说该文件可以通过 HTTP GET 动态生成

获取动态内容的 Controller 动作应该返回什么?
另外,如何在小程序的 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 Applet。. . 请温柔

谢谢。

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 回答