通过AJAX和参数调用MVC4控制器GET意外地为null

时间:2016-02-17 16:33:55

标签: jquery ajax asp.net-mvc-4

我尝试做最简单的ajax post从ajax发送字符串并将其放入控制器中。调用了控制器方法,但字符串参数为null。

这是控制器:

    public ActionResult FilterByName(string s)
    {
      Here I put the break point. 

这是Jquery代码:

    $.get('/Filter/FilterByName', "ttt");

我真的不知道我做错了什么。我在这里待了一天!!!

1 个答案:

答案 0 :(得分:1)

正如tymeJV评论的那样,由于您对数据进行编码并通过HTTP发送,因此您需要将数据置于键/值配对中。因此

 $.get('/Filter/FilterByName', "ttt");

应该是

$.get('/Filter/FilterByName', {s: "ttt"});

同时确保您的方法接受get请求,否则默认情况下应该拒绝AJAX请求。这是由于DenyGet'这是MVC的默认值。话虽如此,这可能是您遇到的下一个障碍(就像我第一次学习这个时一样)。例如:

[HttpGet]
public ActionResult FilterByName(string s)
{
    // some logic using s
    ....

    return Json(result, JsonRequestBehavior.AllowGet);
}