我正在使用mvc 4
我有这个模型:ViewModelOne
public HttpPostedFileBase passportImage { get; set; }
另外,我有这个模型:modelViewTWO
public byte[] passportImage { get; set; }
我有这个视图女巫使用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并且它是null。为什么呢?
答案 0 :(得分:1)
您需要将enctype
属性添加到表单标记中,以便发布数据:
@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" })) {
(将前两个参数设置为null
将发布表单所在的相同操作和控制器。