簡體   English   中英

AJAX Post 未調用 ASP.NET Web 窗體 [WebMethod]

[英]ASP.NET Web Forms [WebMethod] not being called by AJAX Post

我正在使用 bootstrap/jquery 3.4.1 js 處理 ASP.NET Web 窗體項目。 我在讓我的 AJAX Post 工作時遇到問題。 它應該在 Schedule.aspx 中命中我的 [WebMethod],但事實並非如此。 我已經在它上面設置了一個斷點,並且在單擊保存按鈕時它永遠不會被激活。 AJAX 成功並彈出警報,我已經驗證 stringify 數據按預期輸出,但為什么它沒有命中 [WebMethod]?

這是我的 JavaScript 函數:

$(document).on('click', '#modalSave', function (e) {
     
    var testValue = "TestValue";

    $.ajax({
        type: "POST",
        url: "Schedule.aspx/InsertItem",
        data: JSON.stringify({ Content: testValue }),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function ()
        {
            alert("AJAX success");
            $('#DetailsModal').modal('hide');
        }
    })
});

我的 [WebMethod]

using System.Web.Services;

namespace Scheduler
{
    public partial class Schedule : Page
    {
        [WebMethod]
        public static string InsertItem(string Content)
        {
            return Content;
        }
    }
}

我的模態和保存按鈕:

<div id="DetailsModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;  </button>
                <h4 class="modal-title" id="myModalLabel">Modal title</h4>
            </div>
            <div class="modal-body">
                <textarea id="modalTextArea" style="width: 100%; height: 300px;"></textarea>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                <button id="modalSave" type="button" class="btn btn-primary">Save changes</button>
            </div>
        </div>
    </div>
</div>

我已經模擬了你的代碼,我可以成功進入WebMethod的斷點,一個可能的原因是你的Visual Studio IDE 中沒有激活調試模式

在此處輸入圖片說明

在此處輸入圖片說明

更新 2:

使用 RouteConfig 配置啟用對WebMethod調用:

public static class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        var settings = new FriendlyUrlSettings();
        settings.AutoRedirectMode = RedirectMode.Off;
        routes.EnableFriendlyUrls(settings);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM