当表单刷新时,多部分/表单数据丢失

时间:2016-03-31 13:10:15

标签: validation asp.net-mvc-4

我有带文件输入的表单,但是当模型未经过验证或抛出错误时,我丢失了有关附件和用户需要上传文件的信息。其他输入都可以,但文件不起作用。

查看

@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);
}

1 个答案:

答案 0 :(得分:1)

浏览器阻止使用value属性或通过JavaScript在文件输入字段上指定值。

这是一项防止恶意代码设置值(路径)和访问本地文件的安全措施。