【发布时间】:2014-09-08 15:42:05
【问题描述】:
我可以成功上传文件(路径存储在数据库中,文件移动到文件存储位置)。但是,如果视图中另一个字段的验证失败并且用户返回到视图页面,则文件输入显示“未选择文件”。
debug中,当控制器返回视图时,this.Model.CoverLetter为“System.Web.HttpPostedFileWrapper”。
如何保留此文件以便可以通过 POST 重新提交?我是否需要在控制器中执行某些操作才能将文件信息传递回视图以重新提交?
查看:
<label for="CoverLetter">Cover Letter</label>
<input type="file" name="CoverLetter" id="CoverLetter" accept=".pdf,.doc,.docx,.txt" />
@Html.ValidationMessage("CoverLetter")
控制器:
[HttpPost]
public ActionResult Create(Applicant application, HttpPostedFileBase CoverLetter)
{
this.ModelState.AddModelErrors(application.Validate(update: false));
if (this.ModelState.IsValid && application.Create())
{
//this stuff works
}
return View(application);
}
【问题讨论】:
-
做客户端验证,是否包含jquery uobtrusive validate?
标签: asp.net-mvc razor model-view-controller file-upload