MVC || HTML表格||你调用的对象是空的

时间:2014-05-29 17:58:56

标签: html asp.net-mvc http-post html-form

我收到此错误,我不知道如何过来:

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

Line 48:         public ActionResult Upload(imageFile imageFile)
Line 49:         {
Line 50:             foreach (var image in imageFile.files)
Line 51:             {
Line 52:                 if (image.ContentLength > 0)

我尝试使用ID属性和名称属性,而不是......

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

     [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.Form:

<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>

这是&#34; imageFile&#34; class:

public class imageFile
{
    public IEnumerable<HttpPostedFileBase> files { get; set; }
}

我做错了什么?我读了很多关于这个例外的帖子,但没有一个对我有帮助..

谢谢。

1 个答案:

答案 0 :(得分:0)

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

视图中的输入元素:

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

你的模特:

public class imageFile
{
    public IEnumerable<HttpPostedFileBase> files { get; set; }
}