我需要将一个图像(当前是一个字节流)传递给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。 。 。 请温柔
感谢。
答案 0 :(得分:2)
synatx错误来自Razor - 它的渲染方式与使用Writer的旧WebForms视图模型不同。但是这里有点红鲱鱼 - 你实际上不想这样做 - 这就是试图将你流式传输的图像数据字节丢弃到HTML中。
我想要做的是想要做的是将applet传递给渲染图像的控制器操作。它将从线上读取然后做它的事情。您的代码可能应该如下所示:
<param name="Filename" value="@Url.Action("DownLoadImage", "Document", new { DocumentId = Model.DocumentId, Page = Model.Page })">
小程序没有座位时间所以我不确定这是否可以解决问题。您可能需要将其设为绝对URI,或者您可能在身份验证方面遇到一些挑战,具体取决于工作原理。