晚安社区,
我在使用Angular 2 POST方法将数据发布到C#Api时遇到问题。实际上我需要向API发送一个JSON对象。以下是作为端点的API POST方法。
[HttpPost]
public Boolean Update(BoRole role, Guid accessToken)
{
CheckUserSuperadmin(accessToken);
string JsonContent = Request.Content.ReadAsStringAsync().Result;
var roleEntity = BaseDependencies.RoleManager.GetRoleById(role.Id);
roleEntity.Name = role.Name;
roleEntity.AuthorizedThreshold = role.AuthorizedThreshold;
BaseDependencies.RoleManager.UpdateRole(roleEntity);
return true;
}
以下是我的Angular 2服务,使用POST方法。
// Update the Role
updateRole(role: Role, accessToken: string): any {
const body: any = JSON.stringify(role);
const headers = new Headers({'Content-Type': 'application/json'});
const options = new RequestOptions({ headers: headers });
const url = this.serverUrl + '/api/Role/Update?role=' + body + '&accessToken=' + accessToken;
return this.http.post(url, body, options).map((res: Response) => res.json());
}
为了更好地解释,我正在尝试将JSON对象发送到此API,但每当我尝试POST到API时, role 对象仍然为null,从未尝试以这种方式POST数据。有可能吗?
由于
答案 0 :(得分:0)
更改Api只获得一个人获得
[HttpPost("Add")]
public async Task<IActionResult> Post([FromBody]AddRequest value)
在我的情况下,班级
addRequest设置
拥有我需要的所有正文结构,在你的情况下创建一个C#可以自动化的类(相同名称),其余的是C#中的历史记录
在Angular
const url = this.serverUrl +'/ api / Role / Update?role ='+ body + '&amp; accessToken ='+ accessToken;
将其更改为
const url = this.serverUrl +'/ api / CONTROLLERNAME';
C#将检测到这是一个Post Request并将其映射到正确的Http Call