通过带有Asp.Net Core MVC模式的表单上载文件时,由于模型绑定,输入中的数据得以保留。但是,当我声明具有IFormFile
属性的[NotMapped]
类型的属性以用作文件上传的数据传输对象时,数据会被携带但不会持久保存,因此,如果ModelState.IsValid
验证失败,我将需要再次将文件和图像加载到表单中,以便重新提交。
返回ASP.NET Core MVC视图时,是否有任何方法可以保留(而不存储)此数据?
谢谢。
答案 0 :(得分:0)
将ViewModel从服务器返回到客户端后,无法重新选择文件。
要解决此问题,您可以考虑在客户端检查模型,例如:
<div class="row">
<div class="col-md-4">
<form asp-action="Create" enctype="multipart/form-data">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="Name" class="control-label"></label>
<input asp-for="Name" class="form-control" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="File" class="control-label"></label>
<input asp-for="File" type="file" class="form-control" />
<span asp-validation-for="File" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
</div>
</div>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}