我有带文件输入的表单,但是当模型未经过验证或抛出错误时,我丢失了有关附件和用户需要上传文件的信息。其他输入都可以,但文件不起作用。
查看
@using (Html.BeginForm("Create", "Person", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.LabelFor(m => m.AttachmentFile)
@Html.TextBoxFor(m => m.AttachmentFile, new { type = "file" })
@Html.ValidationMessageFor(m => m.AttachmentFile)
<input type="submit" value="Submit" />
}
控制器
[HttpPost]
public ActionResult Create(CreateVM model)
{
try
{
if (ModelState.IsValid)
{
// adding to db
}
}
catch (Exception ex)
{
ModelState.AddModelError(String.Empty, String.Format("Error : {0}", ex.Message));
}
return View(model);
}
答案 0 :(得分:1)
浏览器阻止使用value属性或通过JavaScript在文件输入字段上指定值。
这是一项防止恶意代码设置值(路径)和访问本地文件的安全措施。