在视图之间传递图像

时间:2015-07-30 21:28:33

标签: asp.net-mvc

我希望做这样的事情: -

  • View1包含一个带有文件上传控件的表单,供用户上传图片。这会被POST到控制器,在那里图像被调整大小并转换为灰度(新图像的大小不可能超过5kb)。

  • 然后我想重定向到View2,在那里我显示这个新图像,以及" save"按钮。单击此按钮将导致图像保存到数据库。

我不确定的是如何最好地传递图像。我想知道做这样的事情: -

  • 在View1 POST方法中操作图像后,图像数据存储在模型中并使用RedirectToAction()传递给View2
  • View2 GET方法只是将此模型传递给视图,因此可以显示。图像数据也存储在视图中的隐藏字段中。
  • 当用户点击"保存"这是POST回来的,控制器将其保存到DB。

我是MVC的新手,所以我想知道这是否是一个可接受的解决方案?它并没有感觉到非常正确"往返"这样的图像数据,并想知道是否有更合适的方法或机制(例如TempData或会话状态)?

1 个答案:

答案 0 :(得分:0)

您可以使用ViewData。您的代码将如下所示。

在你的第一个行动中: ViewData["ImageURL"] = YourImageResourceURL;

重定向后,在您的视图页面中,您有 <img src="@ViewData["ImageURL"]" />