带输入参数的MVC jquery ajax调用

在带有参数的控制器上调用操作时,我遇到了问题

在控制器中,我有以下行动:

[HttpPost] public ActionResult UpdateData(string month) { return Json(new { success = true, message = "Hello world" }); } 

视图中的ajax调用如下所示:

 $.ajax({ url: '@Url.Action("UpdateData")', dataType: "json", type: "POST", contentType: 'application/json; charset=utf-8', cache: false, data: { }, success: function (data) { if (data.success) { alert(data.message); } }, error: function (xhr) { alert(xhr.responseText); } }); 

这很好用,但是当我想传递这样的论点时

 data: {month:'may'} 

我收到一个错误,从未调用该操作。 我只是没有看到它。

编辑:

好吧,我只需要将json作为字符串传递:

 data: "{month:'may'}" 

我想我需要更多的睡眠:-)

您必须删除内容类型 ,如果您在URL中传递控制器名称,也必须更好

  $.ajax({ url: '@Url.Action("UpdateData","YourControllerName")', dataType: "json", type: "POST", cache: false, data: {month:'may'} , success: function (data) { if (data.success) { alert(data.message); } }, error: function (xhr) { alert(xhr.responseText); } });