2009-09-05 39 views
0

我有一个POST控制器动作,如:ASP.NET MVC Request.Files无法存活Model.IsValid =假

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中的文件。有没有办法将它们传递给视图以存储在输入标签中?

回答

1

出于安全原因,您cannot设置了input type =“file”标记的值。想象一下,访问一个可以设置价值的恶意网站,并用JavaScript发布一个表单,窃取您计算机上的任何文件。

0

尝试先将文件保存到临时区域,然后调用Model.IsValid。获得更复杂的一点,但有必要考虑上传文件的愿望(可能带有经过验证的记录)标记某处已经上传文件的文件,隐藏字段或其他内容,并在Model.Isvalid返回true时使用该文件您可以将您的文件与新的有效记录一起打包。

相关问题