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

标签 javascript asp.net-mvc drag-and-drop dropzone.js dropzone

我正在尝试在 ASP.Net MVC 中实现 Dropzone.js。我尝试了一切,但不知何故我无法在 Controller 中接收删除的文件。该变量只是 NULL。

我的 View 如下所示:

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

我的 Controller 如下所示:

[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 实际上是从 View 调用的。但“IEnumerable 文件”为空。 有人知道我做错了什么吗?

提前致谢!

最诚挚的问候 mustache 熊

最佳答案

听起来您忘记包含 enctype="multipart/form-data" 属性并使用 method="post" 因为目标 Controller 操作具有 HttpPostAttribute (默认情况下,如果您未在表单标记中指定 HTTP 方法,它将 sets as 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

关于javascript - ASP.Net MVC 中的简单 Dropzone 实现 - 如何获取 Controller 中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52310370/

相关文章:

json - 将大型 JSON 发布到 MVC 操作方法 : The length of the string exceeds the value

Javascript:使用拖放在屏幕上重新排列 div

java - 如何扩展 sun.awt.windows 以提取非标准剪贴板格式,以便我可以支持从 native 应用程序中进行拖放?

c++ - Qt 4.x : how to implement drag-and-drop onto the desktop or into a folder?

javascript - 单击按钮时添加值

javascript - jQuery 动画无法正常工作

javascript - 从 javascript 到 PHP 的 POST 请求

javascript - 使用 AngularJS 向表单添加行

asp.net-mvc - MVC 3 - 新区域 - 404 错误 - 找不到资源 - 已尝试路由调试器

javascript - 为什么 Ajax 调用没有被命中?