如何使用ajax从API控制器调用方法

如何使用ajax从API控制器调用方法,api,asp.net-mvc-4,asp.net-apicontroller,asp.net-mvc-apiexplorer,Api,Asp.net Mvc 4,Asp.net Apicontroller,Asp.net Mvc Apiexplorer,我想使用AJAX从API控制器调用一个方法。我试过以下方法 我在视图中添加了一个隐藏字段(就像我们在mvc控制器中所做的那样) 但是在这里,它没有从API控制器CartController获取方法,GetShoppingCartUrl。我想调用那个方法,是什么改变使它发生的 function GetShoppingCart() { debugger; var url = "Cart/GetShoppingCartUrl"

我想使用AJAX从API控制器调用一个方法。我试过以下方法

我在视图中添加了一个隐藏字段(就像我们在mvc控制器中所做的那样)

但是在这里,它没有从API控制器CartController获取方法,GetShoppingCartUrl。我想调用那个方法,是什么改变使它发生的

 function GetShoppingCart() {
                debugger;
                var url = "Cart/GetShoppingCartUrl"
                $.ajax({
                    type: "get",
                    url: url,
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (response) {
                    },
                    error: function () {
                    }
                });
            }
您可以直接将actionlink放入url中
希望有帮助。:)

使用下面的代码以javascript获取站点的url,并将其附加到ajax调用中的url之前。e、 g var url=baseUrl+“购物车/GetShoppingCartUrl”

@{ 字符串url=Request.url.GetLeftPart(UriPartial.Authority)+Request.ApplicationPath; 如果(url[url.Length-1]!=“/”) { url=url+“/”; } } var baseUrl='@url';
//警报(baseUrl);是否调用了
getShoppingCart
方法?此外,您实际上不需要将url保存在隐藏的输入中。您可以根据映射直接调用它。首先,它的
值=“@Url.Action(…)
(不是
@Html.Action()
)-但是使用
数据-
属性,而不是隐藏的输入,或者只将其包含在函数-var Url='@Url.Action(…)中`如果脚本不在外部file@serendipity方法未命中。@Averalateam然后调用该方法..
GetShoppingCart()
正如我已经说过的,除非您已经更改,否则直接映射
url
/api/controllerName/methodName/id
it@serendipity我已经试过了,但它不起作用,因为在mvc控制器中,我们可以使用这种方法,但在我的例子中,它是API控制器
function GetShoppingCart() {
            debugger;
            var url = $('#GetShoppingCartUrl').val();
            $.ajax({
                type: "get",
                url: url,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                },
                error: function () {
                }
            });
        }
 function GetShoppingCart() {
                debugger;
                var url = "Cart/GetShoppingCartUrl"
                $.ajax({
                    type: "get",
                    url: url,
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (response) {
                    },
                    error: function () {
                    }
                });
            }