繁体   English   中英

ASP.Net MVC中的简单Dropzone实现-如何在Controller中获取数据?

[英]Simple Dropzone implementation in ASP.Net MVC - How can I get data in the Controller?

我正在尝试在ASP.Net MVC中实现Dropzone.js。 我尝试了所有操作,但是不知何故我无法在控制器中收到删除的文件。 该变量只是NULL。

我的视图如下所示:

  <h2>DropZoneUp</h2> <form action='@Url.Action("DropZoneUpload")'class="dropzone"id="my-awesome-dropzone"> </form> <script src="~/Scripts/dropzone.js"></script> 

我的控制器如下所示:

[HttpPost]
public ActionResult DropZoneUpload(IEnumerable<HttpPostedFileBase> files)
{
    foreach (var file in files)
    {
        string filePath = Guid.NewGuid() + Path.GetExtension(file.FileName);
        file.SaveAs(Path.Combine(Server.MapPath("~/ExcelNDropUpload"), filePath));
    }
    return Json("fileupload successfully");
}

实际上,从视图中调用了Controller。 但是“ IEnumerable文件”为空。 有人知道我在做什么错吗?

提前致谢!

最好的问候BeardyBear

如果您发布该表单的发布/提交方法,那就太好了。 我发现有人尝试做与您相同的事情,您可能会尝试提及此问题: 在一个请求中上传多个文件dropzone发送两个请求

听起来您好像忘记了包括enctype="multipart/form-data"属性并使用method="post"因为目标控制器操作具有HttpPostAttribute (默认情况下,如果您未在它将设置的form标签中指定HTTP方法, 作为GET )。 正确的代码应如下所示:

<form action='@Url.Action("DropZoneUpload")' class="dropzone" id="my-awesome-dropzone" enctype="multipart/form-data" method="post">
   <!-- other form elements -->
</form>

或使用BeginForm帮助器:

@using (Html.BeginForm("DropZoneUpload", "ControllerName", FormMethod.Post, new { @class = "dropzone", id = "my-awesome-dropzone", enctype = "multipart/form-data" }))
{
    @* other form elements *@
}

如果要与其他输入元素值一起发布任何文件,则multipart/form-data是必需的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM