在Asp Mvc中使用单个输入上传多个文件

时间:2017-03-18 07:17:28

标签: c# html asp.net-mvc file-upload

我想上传多个文件,包括Word文档,Pdf和图像。 我需要为文件使用单个输入,因为我们不知道将上载多少文件。

我的代码是这样但我有问题我无法将文件发送到服务器端。

控制器代码:

public ActionResult Create([Bind(Include = "Id,Content")] Message message, IEnumerable<HttpPostedFileBase> files)
    {

        if (ModelState.IsValid)
        {
        // Object save logic
        SaveFiles(message,files);
        return RedirectToAction("Index");
        }
        return View(message);
    }

观看代码的一部分:

<form name="registration"  action="">
            @Html.ValidationSummary(true, "", new { @class = "text-danger" })
            <div class="form-group">
                <label for="Content" >Content:</label>
                <textarea class="form-control compose_content" rows="5" id="Content" name="content"></textarea>

                  <div class="fileupload">
                      Attachment :  

                      <input id="files" name="files" type="file" multiple />
                  </div>
            </div>
            <button type="submit" class="btn btn-default compose_btn" >Send Message</button>
        </form>

我没有保存文件和保存对象的问题。 唯一的问题: 文件列表为空。

1 个答案:

答案 0 :(得分:2)

我要上传文件,您的表单需要包含enctype= multipart/form-data属性。

<form name="registration"  action="" enctype= "multipart/form-data">

或更好

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

我强烈建议您将模型传递给视图,并使用强类型HtmlHelper方法为模型的属性创建html。