dropzone.js を C# ベースの Web サービスで動作させる方法を理解しようとしています。しかし、アップロードするファイルを選択した後に 404 エラーが発生するという問題が発生しました。
これらは私が行った手順です: VS2012 では、空の MVC4 アプリケーションを開始しました。次に、NuGet を介して index.html、dropzone.js、および jquery を追加しました (dropzone が必要かどうかはわかりません。保存するために追加しただけです)。dropzone.js の Web サイトの例に基づいて、次の 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 コントロールが正しく機能します。しかし、ファイルを選択すると、次のエラーが表示されます。パス '/FileUploadController/FileUpload' にアクセスするために使用される HTTP 動詞 POST は許可されていません。理由がわかりません。また、ブレークポイントでコードが壊れないので、メソッドが正しく呼び出されていないと思います。
ここで何が間違っていますか?