我正在使用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; }
}
任何帮助将不胜感激。
答案 0 :(得分:0)
由于安全原因,浏览器不允许您设置该信息。一旦清除了type = file的表单提交输入,并且脚本或其他编程人员没有手动设置它。
根据您的情况,您可以执行以下操作。 提交表单后,可以将Model1属性File1信息保存在其他对象中。像FileName,FileSize和StreamOfData一样。您将标记传递给已存储该数据的Form。因此,下次提交表单时,如果没有传递任何新数据,您可以考虑该数据。
我希望这个建议会有所帮助。