我有一个POST控制器动作,如:
if (ModelState.IsValid)
{
try
{
//.. save and redirect code here
}
catch
{
//.. add errors to model state
}
}
return View(myModel);
我的request.files可以包含来自以下标签的2张图片:
<input id="MyImage" name="MyImage" type="file" />
当模型有效时,保存完成,然后我重新指示。
然而,当模型无效并且我将对象返回到视图时,我的问题就出现了。该请求不再具有Request.Files中的文件。有没有办法将它们传递给视图以存储在输入标签中?
答案 0 :(得分:1)
出于安全原因,您cannot设置输入类型=“文件”标记的值。想象一下,访问一个可以设置价值的恶意网站,并使用javascript窃取您计算机上的任何文件来发布表单。
答案 1 :(得分:0)
尝试首先将文件保存到临时区域,然后调用Model.IsValid。变得有点复杂,但是你需要上传一个文件(可能带有经过验证的记录)。你可以在某个地方标记你已经上传过一个文件,在一个隐藏字段或其他东西,并在Model.Isvalid返回true时使用它您可以将文件与新的有效记录一起打包。