字段值返回null(MVC 4文件上载)

时间:2013-08-21 11:44:10

标签: asp.net-mvc file-upload

我的文件上传存在问题,其中一个字段(DocumentDepartment)值返回null,同时保存所有其他字段信息。

请帮助

我的模型有以下代码:

public class Document
{
    public int DocumentID { get; set; }
    public string DocumentName { get; set; }
    public string DocumentDepartment { get; set; }
    public byte[] DocumentType { get; set; }
}

我的控制器中的代码:

[HttpPost]
public ActionResult Create(HttpPostedFileBase document)
{
    // verify user selected a file
    if (document != null && document.ContentLength > 0)
    {
        //Get file information
        var documentName = Path.GetFileName(document.FileName);
        var contentLength = document.ContentLength;
        var contenttype = document.ContentType;
        var datadept = DocumentDepartment;

        //Get the file data
        byte[] data = new byte[] { };
        using (var binaryReader = new BinaryReader(document.InputStream))
        {
            data = binaryReader.ReadBytes(document.ContentLength);
        }

        //Save to the database
        Document doc = new Document();
        doc.DocumentDepartment = datadept;
        doc.DocumentName = documentName;
        doc.DocumentType = data;

        //show success....
        db.Document.Add(doc);
        db.SaveChanges();
        ViewData["message"] = document.FileName + "has been saved.";

        return RedirectToAction("Index");

    }
    return View(document);
}

1 个答案:

答案 0 :(得分:0)

好的,我认为您不了解MVC和HTML表单的工作方式。如果您收到HttpPostedFile,它只是收到的二进制数据的包装器。您需要将文件从字节流反序列化为最初创建的类型化对象。

您的对象是否具有序列化/反序列化功能?

如果不考虑在这里查看读取和写入类型对象:

http://msdn.microsoft.com/en-us/library/vstudio/ms233843.aspx