Ajax ActionLink创建GET而不是POST

时间:2013-05-23 15:40:56

标签: c# asp.net-mvc asp.net-mvc-4

我正在尝试创建一个Ajax POST链接,它将Model.Id发送到Controller:

@Ajax.ActionLink("Reply", "Reply", new { MessageId = m.Id },
        new AjaxOptions() {
            HttpMethod = "POST",
            UpdateTargetId = "send",
            InsertionMode = InsertionMode.Replace,
        })

这是在浏览器中生成以下HTML:

<a data-ajax="true" data-ajax-method="POST" data-ajax-mode="replace" data-ajax-update="#send" href="/Messages/Reply?MessageId=12">Reply</a>

要完成,这是来自控制器的代码:

        [HttpPost]
    public ActionResult Reply(int MessageId) {
        var MV = new MessageViewModel {
            ToUser = db.Users.Find(MessageId).Name,
        };

        if (Request.IsAjaxRequest()) {
            return PartialView("_SendMessagePartial", MV);
        } else {
            return View("Index", GetCurrentMessages());
        }
    }

然而它仍在执行GET请求。我正在使用MVC4, jQuery v1.9.1 jquery.unobtrusive-ajax.js 以正确的顺序加载。我也没有得到任何Javascript错误。我无法弄清楚我做错了什么。我怎样才能让这个POST请求起作用?

0 个答案:

没有答案