ASP.NET MVC Core ViewModel回发包括IFormFile

时间:2017-06-20 14:05:47

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

在ASP.NET MVC Core中回发viewmodel时,是否有可能以某种方式不清除文件输入?我知道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));
        }
    }
}

模板:

@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>

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

0 个答案:

没有答案