0

我正在尝试从标准控制器加载的剃须刀页面中的 web-api 控制器加载数据。

但是,当我尝试执行 $.getJSON() 时它失败了,因为 getJSON 方法在调用前面添加了它的原始控制器名称。我该如何解决这个问题?

示例:从控制器 MyController 加载剃刀视图。我有一个名为 ExplorerApi 的 webapi 控制器,我希望在其中执行一个方法。所以从我打电话的剃刀视图中

$.getJSON("api/explorerapi/getavailablegroups?userid=marcel", function (data))

失败是因为 jQuery 在前面添加了 MyController 并将其转换为:

$.getJSON("MyController/api/explorerapi/getavailablegroups?userid=marcel", function (data))

编辑 -

我可以从浏览器调用 web api,它只需http://localhost:59475/api/ExplorerApi/getavailablegroups?userid=marcel&context=pf在浏览器中输入即可愉快地返回 json 数据!但是使用下面的代码,它会在前面添加原始控制器名称!

var uID = sessionStorage.getItem("symUserID");

            var v = "userid=" + uID + "&context=portfolio";
            $.getJSON("api/explorerapi/GetAvailableGroups?" + v, null, function (data) {
                debugger;
            })
            .fail(
            function (jqXHR, textStatus, err) {
                debugger;
                alert(err);
            });

警报消息说:未找到 - 那么如果您查看 jqXHR.responseText 加载的数据,则会出现错误 404,并且在它尝试执行的语句的下方放置了原始控制器的名称!

请求的 URL http://localhost:59475/MyController/api/explorerapi/GetAvailableGroups?userid=marcel&context=portfolio&_=1358064733267

4

1 回答 1

1

而不是“api/explorerapi/GetAvailableGroups?” 使用“/api/explorerapi/GetAvailableGroups?”。

于 2013-01-13T08:26:16.407 回答