使用 Angular Post 将两个参数传递给 WEB API 调用

2024-01-07

我的 WEB API 控制器中有以下 post 方法:

public async Task<HttpResponseMessage> SendPost(Application application)

我通过 javascript 调用它Angular.js $http.post并以 JSON 形式传递应用程序参数:

$http.post("/api/AController/SendPost", JSON.stringify(application)).
            success(function (data, status, headers, config) {
}

这有效。

现在我想将第二个参数作为简单字符串传递(我无法修改现有的应用程序 JSON 对象)。我尝试了网上建议的几种不同方法,但似乎都不起作用。我需要能够做这样的事情:

控制器:

public async Task<HttpResponseMessage> SendPost(RentalApplication application,string test)

JavaScript:

           $http.post("/api/TessIntegration/SendPost", {application:JSON.stringify(application),test:"Some value"}).
            success(function (data, status, headers, config) {
}

您无法从 WebAPI 的主体中获取多个对象。

如果要传递两个复杂对象,解决方案是将它们包装到另一个复杂对象中。

public async Task<HttpResponseMessage> SendPost(SuperComplex request)

public class SuperComplex {
    public Application Application { get; set; }
    public AnotherObject Object { get; set; }
}

$http.post("/api/AController/SendPost", { application: application, Object: {} });

现在,如果第二个参数是一个简单的对象(例如字符串),您可以直接通过 queryString 传递它。

$http.post("/api/AController/SendPost?test=some+value", application );

另外,您不必进行字符串化,Angular 会为您完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Angular Post 将两个参数传递给 WEB API 调用 的相关文章

随机推荐