试图理解我做错了什么。我正在尝试将带有 Angular 服务的 JSON 发布到 WebAPI2,一旦传递它,我想使用从该 JSON 获取的参数在数据库上执行存储过程。
然而这里发生了什么:
已成功解析到 Web 服务的连接 - 好的,我从服务器收到响应
Web 服务上的 Debug.WriteLine 输出“VAR: 0 0”,而不是 JSON 中的实际参数
甚至不确定从哪里开始,问题是 Web 服务无法处理发送的 JSON 还是 Angular 无法正确传递值?怎么了?
ng2:
updateKnowledge(knowledgeElement: KnowledgeElement) {
this._action = "/post";
this._url = CONFIGURATION.baseUrls.server + this._action;
let headers = new Headers();
headers.append('Content-Type','application/x-www-form-urlencoded; charset=utf-8');
headers.append('Content-Type','application/json');
this._http
.post(this._url,JSON.stringify(knowledgeElement), { headers: headers})
.subscribe((res2) => {console.log('subscribe %o', res2)});
}
export interface KnowledgeElement {
knowledgE_USER_ID: number;
knowledgE_NAME: string;
knowledgE_DESCRIPTION: string;
knowledgE_USER_SCORE: number;
}
网络服务:
[HttpPost]
[HttpGet]
public IHttpActionResult Post([FromBody]getKnowledgeByUserId_Result value)
{
var dbContext = new KNOWH_TESTEntities();
System.Diagnostics.Debug.WriteLine("VAR: " + value.KNOWLEDGE_USER_ID + " " + value.KNOWLEDGE_USER_SCORE);
dbContext.updateKnowledge(value.KNOWLEDGE_USER_ID, value.KNOWLEDGE_USER_SCORE);
return Ok();
}
最佳答案
删除第一个content-type
并更改服务参数中的name
相当于发送的数据。
let headers = new Headers();
headers.append('Content-Type','application/json');
this._http
.post(this._url,JSON.stringify(knowledgeElement), { headers: headers})
.subscribe((res2) => {console.log('subscribe %o', res2)});
以及Web Api
public IHttpActionResult Post([FromBody]getKnowledgeByUserId_Result knowledgeElement)
关于javascript - Angular2 服务未将 JSON 传递给 WebAPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41574468/