【问题标题】:ajax call to c# mvc sends both post and get对 c# mvc 的 ajax 调用同时发送 post 和 get
【发布时间】:2014-02-14 12:10:43
【问题描述】:

我查看了几种用于进行 ajax 调用的解决方案,但没有在任何地方提到这个问题,我觉得这可能是我正在使用的环境所特有的问题。 我的控制器:

    [HttpPost]
    public ActionResult ChangeDefualtCC(string a)
    {

        return Json("ok");
    }
    [HttpGet]
    public ActionResult ChangeDefualtCC()
    {

        return Json("ok");
    }

JS:

    $("nevermind").change(function () {

    $.ajax({
        type: "POST",
        url: "/Account/ChangeDefualtCC",
        dataType: "json",
        data: {
            a: "A"
        },
        success: function (data) { console.log(data)},
        error: function (data) { console.log("error");}
    });
});

控制器代码永远不会被命中,这是我在 ajax 调用后在 chrome 中看到的:

编辑 2:页面点击 [HttpGet] 方法。

编辑: 我也标记了 Ektron,因为它在项目中使用,它可能会影响调用。

我的路线:

更新:我尝试过使用 Get 和 Post,并返回到我所在的视图,每次都得到 302。

有什么想法吗?

【问题讨论】:

  • 你拼错了“默认”:)
  • 我认为这里缺少一些东西。 Chrome 开发工具中启动器列的完整 URL 是什么?
  • 我知道这个词看起来不太对劲。是的,控制器是 AccountController.cs
  • 一般来说,如果你的端点根本没有命中,你想看看你的路由。发布您的路由代码,也许我们可以提供帮助。
  • Ant P.initiator 列是什么意思?

标签: c# ajax asp.net-mvc ektron


【解决方案1】:

看起来它找到了“get”,因为您在该调用中没有参数。我认为您可能缺少 ajax 调用中的内容类型,因此模型绑定程序无法将您的帖子内容解析为参数。

$.ajax({
        type: "POST",
        url: "/Account/ChangeDefualtCC",
        contentType: 'application/json; charset=utf-8',       
        dataType: "json",
        data: {
            a: "A"
        },
        success: function (data) { console.log(data)},
        error: function (data) { console.log("error");}
    });

【讨论】:

  • gabanim,我添加了contentType,但Get仍然是被调用的方法
  • 抱歉没有帮助。我想知道您的问题是否与您发送参数的方式有关。 GET 方法不带任何参数,并且可以找到。也许如果你改变它们 - 即,使 POST 无参数并且 GET 采用字符串参数 - 你可以缩小它是否是参数问题。
  • 我昨天也试过了,我尝试了很多无参数组合,一个和多个参数;它总是去Get。但它永远不会直接得到,它首先收到 302。当我尝试用表单包装它并提交时,同样的事情发生了。
【解决方案2】:

您的代码似乎完全正确。 这不是确切的解决方案,但试试这个可能会奏效。

 $("nevermind").change(function () {

     $.post("/../Home/ChangeDefualtCC", { a: "A" }, function (data) {

        console.log(data)
     });
});

【讨论】:

    【解决方案3】:

    我们的项目与 CMS Ektron 集成。我们后来发现 Ektron 在 C# 代码之前被命中,并且对任何没有尾随 url 的 url 都有一些影响。

    感谢大家的帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-09
      • 1970-01-01
      • 2017-06-04
      • 2015-12-07
      • 1970-01-01
      相关资源
      最近更新 更多