0

我在文件上传时遇到问题,其中一个字段(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);
}
4

1 回答 1

0

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

你的对象有序列化/反序列化功能吗?

如果不考虑在此处查看将类型化对象读取和写入流:

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

于 2013-08-21T12:12:36.700 回答