Asp.net mvc 表单集合不包含输入文件(ASP.Net MVC 3)

Asp.net mvc 表单集合不包含输入文件(ASP.Net MVC 3),asp.net-mvc,file-upload,Asp.net Mvc,File Upload,为什么表单不包含文件上载?但它包含其他输入。我怎样才能得到我上传的内容? 谢谢。看一看在ASP.NET MVC中处理文件上传的方法。您可以在控制器中使用,而不是FormCollection: [HttpPost] public ActionResult Edit(MyModel mymodel, FormCollection forms) { if (string.IsNullOrEmpty(forms["fileUpload"])) {

为什么表单不包含文件上载?但它包含其他输入。我怎样才能得到我上传的内容? 谢谢。

看一看在ASP.NET MVC中处理文件上传的方法。您可以在控制器中使用,而不是
FormCollection

[HttpPost]
public ActionResult Edit(MyModel mymodel, FormCollection forms)
{
         if (string.IsNullOrEmpty(forms["fileUpload"]))
         {
                  //forms["fileUpload"] does not exist
         }
         //TODO: something...
}
您还可以将此
fileUpload
作为视图模型的一部分:

[HttpPost]
public ActionResult Edit(MyModel mymodel, HttpPostedFileBase fileUpload)
{
    if (fileUpload != null && fileUpload.ContentLength > 0) 
    {
        // The user uploaded a file => process it here
    }

    //TODO: something...
}
然后:

public class MyModel
{
    public HttpPostedFileBase FileUpload { get; set; }

    ...
}
请看一看在ASP.NET MVC中处理文件上载的方法。您可以在控制器中使用,而不是
FormCollection

[HttpPost]
public ActionResult Edit(MyModel mymodel, FormCollection forms)
{
         if (string.IsNullOrEmpty(forms["fileUpload"]))
         {
                  //forms["fileUpload"] does not exist
         }
         //TODO: something...
}
您还可以将此
fileUpload
作为视图模型的一部分:

[HttpPost]
public ActionResult Edit(MyModel mymodel, HttpPostedFileBase fileUpload)
{
    if (fileUpload != null && fileUpload.ContentLength > 0) 
    {
        // The user uploaded a file => process it here
    }

    //TODO: something...
}
然后:

public class MyModel
{
    public HttpPostedFileBase FileUpload { get; set; }

    ...
}

但是为什么这样的方法在这个例子中能正常工作?@greatromul,在这个例子中,他们使用
Request.Files[“FileBlob”]
来获取实际的文件,而不是从FormCollection获取。因此,在代码中,您可以执行
var file=Request.Files[“fileUpload”]。但无论如何,我强烈建议您使用
HttpPostedFileBase
@greatromul,用于哪个对象?尝试按照博客文章中显示的确切步骤进行操作。然后适应你的情况。我发现了,但无法解决它。索引操作只起作用,但我不明白为什么。你是对的,Request.Files[“fileUpload”]工作正常。但我听从你们的建议,将使用模型的技巧。重要的是不要忘记,输入名称必须与模型中的属性相同。谢谢你的帮助!但是为什么这样的方法在这个例子中能正常工作?@greatromul,在这个例子中,他们使用
Request.Files[“FileBlob”]
来获取实际的文件,而不是从FormCollection获取。因此,在代码中,您可以执行
var file=Request.Files[“fileUpload”]。但无论如何,我强烈建议您使用
HttpPostedFileBase
@greatromul,用于哪个对象?尝试按照博客文章中显示的确切步骤进行操作。然后适应你的情况。我发现了,但无法解决它。索引操作只起作用,但我不明白为什么。你是对的,Request.Files[“fileUpload”]工作正常。但我听从你们的建议,将使用模型的技巧。重要的是不要忘记,输入名称必须与模型中的属性相同。谢谢你的帮助!