我试图弄清楚如何让 dropzone.js 与基于 C# 的 Web 服务一起工作。但是我遇到的问题是,在我选择要上传的文件后遇到 404 错误。
这些是我已经完成的步骤: 在 VS2012 中,我启动了一个空的 MVC4 应用程序。然后我通过 NuGet 添加了 index.html、dropzone.js 和 jquery(不知道 dropzone 是否需要它,只是添加它以保存)。根据dropzone.js网站上的例子,我写了下一段html代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="CSS/FileUploader.css" rel="stylesheet" />
<script src="Scripts/jquery-2.0.2.min.js"></script>
<script src="Scripts/DropZone.js"></script>
<script>
</script>
<title>File Uploader test</title>
</head>
<body>
<form action="/FileUpload/FileUploadController"
class="dropzone" <!-- this css class contains: background-color: yellow; -->
id="my-awesome-dropzone"></form>
</body>
</html>
我在 RouteConfig.cs 中向路由配置添加了一个路由,如下所示:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
name: "FileUpload",
url: "FileUpload/FileUploadController",
defaults: new
{
controller = "FileUploadController",
action = "FileUpload"
}
);
}
我的控制器看起来像这样:
public class FileUploadController : Controller
{
[HttpPost]
public ActionResult FileUpload(IEnumerable<HttpPostedFileBase> files)
{
return null; //Breakpoint here
}
}
我在“return null”行上放了一个断点,只是为了测试该方法是否被正确调用。当我运行代码并打开 html 页面时,dropzone 控件正常工作。但是当我选择一个文件时,会显示这个错误:HTTP verb POST used to access path '/FileUploadController/FileUpload' is not allowed。我不知道为什么。此外,代码不会在断点处中断,所以我猜该方法没有正确调用。
我在这里做错了什么?