我正在尝试向ASP.NET Core后端进行基本的HTTP发布。
角度:
var parms = {
userRoles: ['User', 'Worker'],
email: 'email@email.com'
};
this.http.post('/UserRole/SaveUserRoles', parms)
.subscribe(result => { });
控制器:
[HttpPost]
public async Task<IActionResult> SaveUserRoles([FromBody]string[] userRoles, string email)
{
return Ok();
}
我的参数显示为空。我可以通过创建一个复杂的对象C#端来使其正常工作,但这不是我想要的。我不需要仅用于2个参数的对象。
这里缺少什么?
答案 0 :(得分:3)
您必须为请求设置适当的标头,例如
final VideoView video_frame_layout = (VideoView) findViewById(R.id.video_loader);
Log.i("PANGA", "Layout width : "+ video_frame_layout.getWidth());
Log.i("PANGA", "Layout width : "+ video_frame_layout.getHeight());
video_frame_layout.post(new Runnable()
{
@Override
public void run()
{
Log.i("TEST", "Layout width : "+ video_frame_layout.getWidth());
Log.i("TEST", "Layout width : "+ video_frame_layout.getHeight());
}
});
对于您的控制器端
我不需要仅用于2个参数的对象。
但这是在模型或c#对象中捕获所有已发布数据的好习惯。
所以我在这里创建一个示例类。
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 => {
});
答案 1 :(得分:-1)
您基本上想将您的POST 数据视为单独的参数。您可以将它们作为“参数”发送,将其转换为 querystring参数。
params
是get
的第二个参数和post
的{{1}}的第三个参数的属性。
HttpClient
您想要更新API控制器,以在要绑定的参数上使用var body = null;
var parms = {
userRoles: ['User', 'Worker'],
email: 'email@email.com'
};
this.http.post('/UserRole/SaveUserRoles', body, {params: parms})
.subscribe(result => {
});
属性。
[FromQuery]