Ajax路由调用控制器名称两次

时间:2014-06-24 14:01:04

标签: ajax model-view-controller

我试图通过ajax对我的控制器进行简单的调用。 RouteConfig尚未更改并设置为默认值。当我进行ajax呼叫时,"网络"中所请求的URL调试工具是:

'http://localhost:59275/Leaderboard/Leaderboard/GetPosition'

这导致404,因为Controller,Leaderboard被添加到Url中两次。正确的网址应该是

'http://localhost:59275/Leaderboard/GetPosition'

我的ajax电话如下:

  $.ajax({                
            url: 'Leaderboard/GetPosition',
            type: "GET",
            dataType: 'xml',
            success: function (data) {
                $('#results').html(data);;
            }
        });

我的控制器如下:

public class LeaderboardController : Controller
    {
        [Webmethod]
         public static DataTable GetPosition()
         {
             // do stuff
         }


    }

2 个答案:

答案 0 :(得分:8)

如果请求ajax的页面的根URL是“Leaderboard”,那么ajax调用上的url应该只是“GetPosition”

或者您可以在前面使用“/ Leaderboard / GetPosition”和“/”

答案 1 :(得分:1)

使用Url.Action帮助程序生成正确的网址。

改变这个:

 url: 'Leaderboard/GetPosition'

到此:

 url: '@Url.Action("GetPosition","Leaderboard")'