2011-11-07 41 views
3

我已經成功地刪除了在我的代碼中對Request.Form的引用,但是我沒有看到任何ASP.NET MVC 3支持將Request.Files綁定到我的視圖模型。最好的做法是將Request.Files對象(HttpFileCollectionBase)傳遞給任何方法來處理我的附件?例如,有沒有辦法在post(ASP.NET MVC 3)上傳回視圖模型中的Request.Files?

[HttpPost] 
public ActionResult UpdateStatus(StatusViewModel vm) 
{ 
    bool updated = HandleUpdate(Request.Files, vm); 
    ... 
    return View("Updated"); 
} 

回答

2

您可以簡單地聲明類型HttpPostedFileBase的動作參數,就像這樣:

public ActionResult Method(HttpPostedFileBase fileUploaded) 

您可以綁定到類似名稱的實例的數組,以及。

public ActionResult Method(HttpPostedFileBase[] filesUploaded) 

和,HttpPostedFileBase可以是您的視圖模型的成員。

public class MyModel{ 
    public string Name{get; set;} 
    public HttpPostedFileBase FileUploaded{get; set;} 
} 
+0

我試着添加一個HttpPostedFileBase到我的視圖模型,但我似乎錯過了將它綁定到Request對象的文件的粘合劑。 (Request.Files包含內容,它不會放入我的對象中。) – Daniel

+0

必須正確命名該字段以匹配字段名稱,就像任何其他表單字段一樣。 –

相關問題