【发布时间】:2015-04-17 13:07:13
【问题描述】:
这是我的问题。我已经在我的应用程序中实现了图像的上传和下载。我遇到的问题是在出现验证错误时发回服务器。发生这种情况时,控制器重定向回页面并显示所有错误,但 HttpPostedFileBase 对象为空!所以我必须显示“无图像”图片并强制用户重新上传图像。我想要的是将图像加载回 HttpPostedFileBase 以便可以再次使用它而无需两次上传任何内容!所有其他文本值都重新显示在页面上,为什么图像不能这样做? 这可能与后面的代码有关还是我必须做一些 javascript/ajax 类型的东西?有点像 javascript/ajax 的新手,因此我们将不胜感激。
这是我的控制器。如果验证失败,我将重新显示视图并显示错误,并尝试将 HttpPostedFileBase 设置回返回的 HttpPostedFileWrapper,但当我第二次回发时它不起作用,该对象为空。因此,如果我重新提交表单,图像仍然是空的。
[HttpPost]
public ActionResult Edit(EditStudentViewModel studentViewModel)
{
if (ModelState.IsValid)
{
//do stuff here
} else
{
var years = Enumerable.Range(DateTime.Now.Year - 99, 100).Reverse();
studentViewModel.Years = years.Select(c => new SelectListItem
{
Text = c.ToString(),
Value = c.ToString(),
Selected = (c == studentViewModel.SelectedYearId)
});
studentViewModel.StudentImageResult =
new FileContentResult(
System.IO.File.ReadAllBytes(
System.IO.Path.GetFullPath(Server.MapPath("~/App_Data/Images/no_image.jpg"))),
"image/jpeg");
// I thought I could reset the httppostedfilewrapper here but it doesn't work
studentViewModel.HttpPostedFileBase= studentViewModel.StudentImageFileBase;
return View(studentViewModel);
}
}
【问题讨论】:
标签: javascript ajax asp.net-mvc image-uploading