您好我正在尝试让我的ajax在点击“删除”按钮时调用我的控制器。图像预览被删除,但我的控制器上的断点从未命中。有人可以查看我的代码并且发了一点光。谢谢!
<script>
Dropzone.options.myDropzone = {
init: function () {
this.on("addedfile", function (file) {
var removeButton = Dropzone.createElement("<button id='btnDel' class='btnRemove'>Remove file</button>");
var _this = this;
// Listen to the click event
removeButton.addEventListener("click", function (e) {
_this.removeFile(file);
var delURL = "~/Home/DeleteFiles";
$.ajax({
type: "POST",
url: delURL,
data: param = "",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: alert("worked"),
error: errorFunc
});
});
file.previewElement.appendChild(removeButton);
$(".dz-error-message").remove();
});
}
};
答案 0 :(得分:5)
此网址对浏览器毫无意义:
~/Home/DeleteFiles
~
字符表示对应用程序的服务器端“home”或“root”路径的引用。但是客户端代码没有这个概念。它需要一个实际的URL。
如果被调用的操作在DeleteFiles
控制器上被调用Home
,那么您可以在呈现客户端代码时使用URL帮助程序生成URL:
var delURL = '@Url.Action("DeleteFiles", "Home")';
这将使用视图中的服务器端代码生成客户端使用的实际URL,相对于服务器端已知的有关应用程序的任何其他内容。它会呈现如下:
var delURL = 'http://yourserver/Home/DeleteFiles';