MVC | | HTML表单| |对象引用未设置为对象的实例

MVC | | HTML表单| |对象引用未设置为对象的实例,html,asp.net-mvc,http-post,forms,Html,Asp.net Mvc,Http Post,Forms,我犯了这个错误,我不知道如何克服它: “对象引用未设置为对象的实例。” 我试着使用ID属性和name属性等等 这是我的控制器中有问题的部分: [HttpPost] public ActionResult Upload(imageFile imageFile) { foreach (var image in imageFile.files) { if (image.ContentLength > 0)

我犯了这个错误,我不知道如何克服它:

“对象引用未设置为对象的实例。”

我试着使用ID属性和name属性等等

这是我的控制器中有问题的部分:

     [HttpPost]
    public ActionResult Upload(imageFile imageFile)
    {
        foreach (var image in imageFile.files)
        {
            if (image.ContentLength > 0)
            {
                CloudBlobContainer blobContainer = _blobStorageService.GetCloudBlobContainer();
                CloudBlockBlob blob = blobContainer.GetBlockBlobReference(image.FileName);
                blob.UploadFromStream(image.InputStream);
            }
        }
        return RedirectToAction("Upload");
    }
这是HTML。表单:

<p>
    @using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
        <input type="file" name="imageFile" id="imageFile" multiple />
        <input type="submit" name="submit" value="Upload" />
    }
</p>

@使用(Html.BeginForm(“Upload”、“Home”、FormMethod.Post、new{enctype=“multipart/formdata”}))
{
}

这是“imageFile”类:

公共类图像文件
{
公共IEnumerable文件{get;set;}
}
我做错了什么?我读了很多关于这个例外的帖子,但没有一篇对我有帮助


谢谢。

只需将html输入的名称更改为文件,就像在模型类中一样:

视图中的输入元素:

<input type="file" name="files" id="files" multiple />

您的型号:

public class imageFile
{
    public IEnumerable<HttpPostedFileBase> files { get; set; }
}
公共类图像文件
{
公共IEnumerable文件{get;set;}
}

异常表示您试图使用对象(imageFile),但该对象为空。这可能是将操作中的参数名称从imageFile更改为file时最常见的例外情况。有时候绑定很挑剔。@KyleGobel是的,我知道了,你知道怎么修复它吗?@Josh这个问题没有更传统的解决方案了吗?
<input type="file" name="files" id="files" multiple />
public class imageFile
{
    public IEnumerable<HttpPostedFileBase> files { get; set; }
}