ASP MVC如何将内存中的字节流传递给Java Applet?

时间:2011-07-05 10:44:58

标签: c# asp.net-mvc asp.net-mvc-3 applet dynamic-content

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

applet的文档说文件可以通过HTTP GET动态生成

获取动态内容的Controller操作应该返回什么?
另外,如何在小程序的Html中指定Url?

我尝试从控制器返回一个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");
}

我在“下载图片”ActionLink中使用DownloadImage动作。

如果您还有其他需要,请告诉我。

道歉,如果我做了一些愚蠢的事情,或者遗漏了一些非常明显的事情。我对Web开发知之甚少,这是我的第一个ASP MVC应用程序,也是我第一次使用Java Applet。 。 。 请温柔

感谢。

1 个答案:

答案 0 :(得分:2)

synatx错误来自Razor - 它的渲染方式与使用Writer的旧WebForms视图模型不同。但是这里有点红鲱鱼 - 你实际上不想这样做 - 这就是试图将你流式传输的图像数据字节丢弃到HTML中。

我想要做的是想要做的是将applet传递给渲染图像的控制器操作。它将从线上读取然后做它的事情。您的代码可能应该如下所示:

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

小程序没有座位时间所以我不确定这是否可以解决问题。您可能需要将其设为绝对URI,或者您可能在身份验证方面遇到一些挑战,具体取决于工作原理。