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 中获取文件目录,所以我认为这也不是可行的方法。