Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# JQuery Ajax函数未在DNN中调用后端方法_C#_Jquery_Ajax_Dotnetnuke_Dnn9 - Fatal编程技术网

C# JQuery Ajax函数未在DNN中调用后端方法

C# JQuery Ajax函数未在DNN中调用后端方法,c#,jquery,ajax,dotnetnuke,dnn9,C#,Jquery,Ajax,Dotnetnuke,Dnn9,我无法让DotNetNuke从jQueryAjax函数执行后端代码。 我的View.ascx文件中有以下JQuery代码 我确实尝试将URL更改为View.ascx/DeleteReviewData,但没有成功 function deleteReview(ReviewID){ var ReviewIDToDelete = ReviewID; $.ajax({ type: "POST", contentType: "application/json"

我无法让DotNetNuke从jQueryAjax函数执行后端代码。 我的View.ascx文件中有以下JQuery代码

我确实尝试将URL更改为View.ascx/DeleteReviewData,但没有成功

function deleteReview(ReviewID){
    var ReviewIDToDelete = ReviewID;
    $.ajax({
        type: "POST",
        contentType: "application/json",
        url: "https://dnndev.me/Product-View/DeleteReviewData",
        data: "{'deleteReviewID': '"+ ReviewIDToDelete +"'}",
        datatype: "json",
        success: function (data) {
            alert("Delete successfull");
        },
        error: function (error) {
            alert(error);
        }
    });
}
这是我的后端代码,它不会在View.ascx.cs文件上执行:

[System.Web.Services.WebMethod]
    public static void DeleteReviewData(int deleteReviewID)
    {
        try
        {
            //Deletes a review from the database
            using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["SiteSqlServer"].ToString()))
            {
                connection.Open();

                using (SqlCommand command = new SqlCommand($"delete from ProductReviews where ReviewID = {deleteReviewID}"))
                {
                    command.Connection = connection;
                    command.ExecuteNonQuery();
                }
                connection.Close();
            }
        }
        catch(Exception ex)
        {
            throw;
        }
    }
如果我应该使用MapHttpRoute。有人举个例子吗

我看了下面的帖子,但我不确定是否要使用RouteConfig.cs和额外的标题等:

我目前没有控制台错误。它会转到成功部分。 当我在调试时将鼠标悬停在Type、ContentType或其中任何一个上面时,它会显示“未定义”。见下面的例子。该站点正在使用JQuery 01.09.01

第二图像

更新

我更改了URL,现在出现404错误:
URL:$.fn.GetBaseURL()+“DesktopModules/ProductDetailedView/DeleteReviewData”

我还通过添加API
API/DeleteReviewData
尝试了此URL路径,但由于控制台中显示了404错误,因此出现了[object object]错误。

这是一个示例:

    $.ajax({
        data: { "Id": IdToDelete },
        type: "POST",
        dataType: "json",
        url: "/DesktopModules/{API-ProjectName}/API/Main/DeleteExpenseByID"
    }).complete(function () {
        //...
    });
Api方法:

    [HttpPost]
    [DnnAuthorize]
    public void DeleteExpenseByID(int Id)
    {
       //...
    }
您需要发送一个数字,这样就不需要“'”周围的ReviewIDToDelete变量


还要检查DeleteReviewData中的[POST]属性,这似乎是一个[GET]调用。

您是否检查了控制台中的错误?请求失败的原因有成千上万个。@Rorymcrossan,我检查过了,没有控制台错误。奇怪的是,当您将鼠标悬停在type、ContentType或它表示未定义的任何其他参数上,但单击它们会将我带到JQuery 1.9.1文件。API ProjectName是默认名称空间还是程序集名称?另外,您有控制器部分的示例吗?我的DNN实例仍然找不到URL。我看了这篇文章。API ProjectName应该是您的项目名称,但您始终可以在windows资源管理器的DesktopModules下检查名称。如果您获得的是404,请尝试使用Postman来执行多个测试