【问题标题】:How to persist IFormFile Upload when (ModelState.IsValid == false) on ASP.NET Core在 ASP.NET Core 上 (ModelState.IsValid == false) 时如何持久化 IFormFile 上传
【发布时间】:2019-04-20 17:31:01
【问题描述】:

当通过带有 Asp.Net Core MVC 模式的表单上传文件时,由于模型绑定,输入上的数据得以保留。但是,当我声明具有[NotMapped] 属性的IFormFile 类型的属性作为文件上传的数据传输对象时,数据被携带但不持久,因此,如果ModelState.IsValid 验证失败,我将需要加载文件和图像再次进入表单以便重新提交。

在返回 ASP.NET Core MVC 视图时,有什么方法可以持久保存(而不是存储)这些数据?

谢谢。

【问题讨论】:

    标签: asp.net-core asp.net-core-mvc


    【解决方案1】:

    将 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");}
    }
    

    【讨论】:

      猜你喜欢
      • 2013-09-13
      • 2022-07-06
      • 2019-03-04
      • 2021-12-09
      • 1970-01-01
      • 2022-12-18
      • 2022-01-06
      • 2017-05-05
      • 2017-10-30
      相关资源
      最近更新 更多