ASP.NET MVC Core ViewModel 回发,包括 IFormFile

Ten*_*eim 5 c# asp.net asp.net-mvc asp.net-core-mvc

在 ASP.NET MVC Core 中回发视图模型时是否可能以某种方式不清除文件输入?我知道 IFormFile 不包含指定所选文件目录的成员。

因此,如果视图模型在 ModelState 无效的情况下被发送回,则文件输入将被清除。是否可以在不完全诉诸客户端验证的情况下避免这种情况?

这是一个示例控制器和模板,可以更充分地解释我所说的内容

控制器:

namespace Example
{
    public class CreateVm
    {
        public IFormFile aFile{ get; set; }
        public string someText{get; set;}
    }

    public class ExampleController : Controller
    {
        public IActionResult Action()
        {
            var vm = new CreateVm();
            return View(vm);
        }

        [HttpPost]
        public IActionResult Create(CreateVm vm)
        {
            // Something invalidates the model state
            // The supplied viewmodel isn't valid, send it back
            if (!ModelState.IsValid)
                return View(vm);

            // Do stuff here
            return RedirectToAction(nameof(Create));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

模板:

@model Example.CreateVm
<form asp-action="Create" method="post" enctype="multipart/form-data">
    <input asp-for="someText"/>
    <input asp-for="aFile"/>
    <input type="submit" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)

据我了解,不可能在 javascript 中获取文件目录,所以我认为这也不是可行的方法。