在MVC 4中使用$ .ajax发出AJAX请求

Mas*_*son 15 ajax asp.net-mvc razor asp.net-mvc-4

我试图在使用Razor的MVC 4中使用$ .ajax发出一个AJAX请求.我不确定如何实现它.

使用这个视频,我能够成功地进行一个返回数据的链接驱动调用,但我似乎无法从jquery函数内部做同样的事情.我似乎无法找到如何做到这一点的任何基本示例.这就是我正在使用的:

HomeController.cs

        public string test(){
             return "It works";
        }
Run Code Online (Sandbox Code Playgroud)

View.cshtml

function inventory(dealerID) {
    $.ajax({
        url: '@Url.Action("HomeController","test")',
        data: {dealerID: dealerID},
        type: 'POST',
        success: function(data) {
            process(data);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

McG*_*gle 28

你只需要做一个ActionResult.此外,如果您使用的是Ajax POST,则需要使用该HttpPost属性标记操作.试试这个:

[HttpPost]
public ActionResult test(string dealerID)
{
    return Content("It works");
}
Run Code Online (Sandbox Code Playgroud)

编辑实际上,语法还有一些其他问题.

  1. Url.Action 控制器/操作参数的顺序错误 - 首先应该是"ActionName",然后是"ControllerName"
  2. 因为Url.Action,如果控制器类是"HomeController",那么你只需要"Home"
  3. JQuery选项语法错误 - 应该是success: function(data) {}.

$.ajax({
    url: '@Url.Action("test", "Home")',
    data: {dealerID: dealerID},
    type: 'POST',
    success: function(data) {
        alert(data);
    }
});
Run Code Online (Sandbox Code Playgroud)

  • @crush是的,确切地说.MVC路由系统足够灵活,可以从任何可用的位置提取控制器参数 - 查询字符串,发布数据或路由数据. (3认同)