【问题标题】:ajax call to asp mvc controllerajax调用asp mvc控制器
【发布时间】:2014-11-12 19:43:04
【问题描述】:

您好,当单击“删除”按钮时,我试图让我的 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();
        });
    }
};

【问题讨论】:

  • 请在此处发布控制器代码。您正在使用 POST 请求。确保您在该函数上有 [HttpPost] 属性

标签: asp.net ajax asp.net-mvc-4


【解决方案1】:

此 URL 对您的浏览器没有任何意义:

~/Home/DeleteFiles

~ 字符表示对应用程序的服务器端“home”或“root”路径的引用。但是客户端代码没有这个概念。它需要一个实际的 URL。

如果正在调用的操作在 Home 控制器上调用 DeleteFiles,那么您可以在呈现客户端代码时使用 URL 助手生成 URL:

var delURL = '@Url.Action("DeleteFiles", "Home")';

这将使用视图中的服务器端代码来生成要在客户端使用的实际 URL,相对于任何其他已知的服务器端应用程序。它会呈现为:

var delURL = 'http://yourserver/Home/DeleteFiles';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    • 2012-04-16
    相关资源
    最近更新 更多