页面刷新后,在ASP.Net MVC视图中保留输入类型文件的值

时间:2018-10-23 15:50:11

标签: c# asp.net-mvc file

我正在使用MVC视图格式的输入类型文件,其值发布到操作方法中以执行一些验证。输入文件的值绑定到模型中的属性,页面刷新后将返回该属性。但是页面刷新后,文件值不会自动绑定。请在下面的代码中查找。

这是我的查看代码。

@model WebApplication10.Models.Model1

<h2>HtmlToPDF</h2>
@using (Html.BeginForm("HtmlToPDF", "Home", FormMethod.Post, new { enctype = 
"multipart/form-data" }))
{
    <table>
        <tr>
            <td>File</td>
            <td><input type="file" name="File1" value="@Model.File1"/></td>
        </tr>
        <tr>
            <td colspan="2"><input type="submit" value="ToHTML" /></td>
        </tr>
    </table>
}

控制器代码:

[HttpPost]
    public ActionResult HtmlToPDF(Model1 file)
    {
        //Some validation.
        return View(file);
    }

这是我的模型:

public class Model1
{
    public HttpPostedFileBase File1 { get; set; }
}

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

  1. 由于安全原因,浏览器不允许您设置该信息。一旦清除了type = file的表单提交输入,并且脚本或其他编程人员没有手动设置它。

  2. 根据您的情况,您可以执行以下操作。 提交表单后,可以将Model1属性File1信息保存在其他对象中。像FileName,FileSize和StreamOfData一样。您将标记传递给已存储该数据的Form。因此,下次提交表单时,如果没有传递任何新数据,您可以考虑该数据。

我希望这个建议会有所帮助。