如何使用Angular2创建包含复杂对象或多个参数的Web API POST请求?
我在Angular2中有一个服务组件,如下所示:
public signin(inputEmail: string, inputPassword: string): Observable<Response> {
return this.http.post('/api/account/signin', JSON.stringify({ Email: inputEmail, Password: inputPassword}), this.options);
}
目标 Web API 如下:
[HttpPost]
[Route("signin")]
public async Task<IActionResult> Signin(string email, string password)
{
....
}
这种方法行不通,因为我需要将 Web API 的参数转换成一个仅包含 Email 和 Password 属性的 POCO 类实体,并加上 [FromBody] 特性:Signin([FromBody] Credential credential)
如果不使用 [FromURI]
(带有查询字符串的 POST 请求?),如何进行多个参数或复杂对象的 POST 请求,而不将这些参数转换为单个 POCO 类?
因为如果我有许多 Web API POST 操作,参数类似于 (string sensitiveInfo1, string name, int sensitiveInfo2)
或 (ClassifiedInfo info, string sensitiveInfo1, string sensitiveInfo2)
,我是否需要将它们全部转换为 POCO 类并始终使用 [FromBody]?
PS.
在此之前我使用过 RestangularJS
,可以不需要我的 Web API 操作具有 [FromBody]
特性就可以发布任何内容(多个基元对象和复杂对象)。 接下来我将调查 RestangularJS 如何实现。
e
和p
定义了email
和password
参数,我认为JavaScript代码也应该是相同的,例如:JSON.stringify({ email: inputEmail, password: inputPassword})
。 - Felipe Oriani