我正在尝试使用Razor在MVC 4中使用$ .ajax发出AJAX请求。我不确定如何实现它。
使用this video我能够成功地进行返回数据的链接驱动调用,但我似乎无法从jquery函数内部做同样的事情。我似乎无法找到如何做到这一点的任何基本示例。 这就是我正在使用的:
HomeController.cs
public string test(){
return "It works";
}
View.cshtml
function inventory(dealerID) {
$.ajax({
url: '@Url.Action("HomeController","test")',
data: {dealerID: dealerID},
type: 'POST',
success: function(data) {
process(data);
}
});
}
答案 0 :(得分:28)
您只需要将其设为ActionResult
即可。此外,如果您使用的是Ajax POST,则需要使用HttpPost
属性标记操作。试试这个:
[HttpPost]
public ActionResult test(string dealerID)
{
return Content("It works");
}
编辑实际上,语法还存在一些其他问题。
Url.Action
控制器/操作参数的顺序错误 - 首先是“ActionName”,然后是“ControllerName”Url.Action
,如果控制器类是“HomeController”,那么你只需要“Home”success: function(data) {}
。$.ajax({
url: '@Url.Action("test", "Home")',
data: {dealerID: dealerID},
type: 'POST',
success: function(data) {
alert(data);
}
});