。
在我的MVC应用程序中,我正在对文件使用以下代码。
型
public HttpPostedFileBase File { get; set; }
视图
@Html.TextBoxFor(m => m.File, new { type = "file" })
一切正常.. 用于提交值,但我正在尝试从控制器模型加载文件,该文件不起作用
控制器
public ActionResult ManagePhotos(ManagePhoto model)
{
if(ModelState.IsValid)
{
//upload file
}
else
{
return View(model); //contains type HttpPostedFileBase File { get; set; }
}
}
如果我的验证失败,我如何再次加载文件输入,因为返回后,我的文件控件没有映射到模型到文件并且它是空的......
如果您知道该文件有效,并且想要暂时保留它,则可以将其保留在会话中(但请注意内存使用情况)。
如果您知道该文件有效,并希望永久保留它,请保存它并将路径保留在内存中。
如果您知道该文件无效,您将不希望也经常能够保留它。
通常,在验证失败期间,这以与密码相同的方式处理 - 需要再次提供,因此只有在其他一切正常时才要求
如果你想尽可能地
让用户体验无缝,那么请尝试以下操作:
- 在客户端添加javascript以验证用户输入
- 在服务器端,将所有文件临时存储在 tmp 文件存储中。清理超过 10 分钟的文件。当您需要将文件保存到存储中时,请执行此操作