C# Ajax调用不再命中控制器

C# Ajax调用不再命中控制器,c#,ajax,C#,Ajax,我必须编写以下代码来进行ajax调用: function openMapTab(lat, lng) { $.ajax({ url: "/Controller/DisplayMap?qid=" + $('body').data('usid'), data: { latitude: lat, longitude: lng }, dataType: "text", type: "POST", success: functi

我必须编写以下代码来进行ajax调用:

function openMapTab(lat, lng) {
$.ajax({
    url: "/Controller/DisplayMap?qid=" + $('body').data('usid'),
    data: {
        latitude: lat,
        longitude: lng
    },
    dataType: "text",
    type: "POST",
    success: function (data, textStatus, jqXHR) {
        var w = window.open();
        $(w.document.head).html("<title>Arcania-Maps</title>");
        $(w.document.body).html(data);
    },
});
}
然而,由于某种原因,我的ajax调用并没有达到预期效果,即使之前的情况也是如此。
知道为什么吗?

默认情况下,所有控制器操作都是
GET
。因此,如果要处理
POST
请求,则需要添加
[HttpPost]
-属性

[HttpPost("[action]")]
public ActionResult DisplayMap(double latitude, double longitude)
{
    ...
}

当您查看Chrome开发者工具网络选项卡时,返回的http状态是什么?如果您能提供一个。例如,您的控制器名为
ControllerController
,这似乎很奇怪。
$('body')的值是多少。数据('usid')
?请返回(使用git或您的源代码控制系统)到它工作的时间,并更新您的问题以包含该代码,以便我们可以尝试找出差异。
url:“/控制器/DISPLAMAP = qID=”+$(“正文”)。数据(“UISD”) = >这不是定义POST请求的URL的正确方式,因为POST请求不使用这样的查询字符串。请考虑创建片段并解释动作方法是如何从未被击中的。是的,可以返回<代码> Action Reule< /代码>。
[HttpPost("[action]")]
public ActionResult DisplayMap(double latitude, double longitude)
{
    ...
}