一尘不染

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

ajax

我想上传多个文件,包括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>

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


阅读 211

收藏
2020-07-26

共1个答案

一尘不染

我要上传文件,您的表单需要包含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。

2020-07-26