2011-11-07 42 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

必须正确命名该字段以匹配字段名称,就像任何其他表单字段一样。 –

相关问题