ahe*_*ick 1 c# angular-http asp.net-core angular
我正在尝试向ASP.NET Core后端进行基本的HTTP发布。
角度:
var parms = {
userRoles: ['User', 'Worker'],
email: 'email@email.com'
};
this.http.post('/UserRole/SaveUserRoles', parms)
.subscribe(result => { });
Run Code Online (Sandbox Code Playgroud)
控制器:
[HttpPost]
public async Task<IActionResult> SaveUserRoles([FromBody]string[] userRoles, string email)
{
return Ok();
}
Run Code Online (Sandbox Code Playgroud)
我的参数显示为空。我可以通过创建一个复杂的对象C#端来使其正常工作,但这不是我想要的。我不需要仅用于2个参数的对象。
这里缺少什么?
您必须为请求设置适当的标头,例如
var postData = {
userRoles: ['User', 'Worker'],
email: 'email@email.com'
};
const headers: HttpHeaders = new HttpHeaders();
headers.set('Content-Type', 'application/x-www-form-urlencoded');
this.http.post('/UserRole/SaveUserRoles', postData, { headers: headers })
.subscribe(result => {
});
Run Code Online (Sandbox Code Playgroud)
对于您的控制器方面,
我不需要仅用于2个参数的对象。
但这是在模型或c#对象中捕获所有已发布数据的好习惯。
所以在这里我创建一个示例类。
class PostData
{
public string[] userRoles { get; set; }
public string email { get; set; }
}
[HttpPost]
public async Task<IActionResult> SaveUserRoles([FromBody]PostData postData)
{
return Ok();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1497 次 |
| 最近记录: |