2009-09-05 33 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時使用該文件您可以將您的文件與新的有效記錄一起打包。

相關問題