0

我正在使用 mvc 4

我有这个模型:ViewModelOne

public HttpPostedFileBase passportImage { get; set; }

另外,我有这个模型:modelViewTWO

public byte[] passportImage { get; set; }

我有这个 View 女巫使用 ViewModelOne 作为模型

@Html.TextBoxFor(model => model.passportImage, new { placeholder = "Uploadt Your Passport", type = "file"})

我有这个控制器:

public string Register(ViewModelOne newT) {
modelViewTWO second = new modelViewTWO();
byte[] data;
            using (Stream inputStream = newT.passportImage.InputStream)
            {
                MemoryStream memoryStream = inputStream as MemoryStream;
                if (memoryStream == null)
                {
                    memoryStream = new MemoryStream();
                    inputStream.CopyTo(memoryStream);
                }
                data = memoryStream.ToArray();
            }
            second.passportImage = data;
}

我得到了这个例外

你调用的对象是空的。

在这一行

newT.passportImage.InputStream

编辑

我检查了 newT.passportImage 并且它为空。为什么?

4

1 回答 1

1

您需要将enctype属性添加到表单标签,以便也发布数据:

@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" })) {

(将前两个参数设置为null将发布相同的操作和表单所在的控制器。

于 2013-10-28T21:59:47.957 回答