2017-01-10 2 views
0

Попытка понять, что я делаю неправильно. Я пытаюсь выполнить POST JSON с помощью Angular Service для WebAPI2, как только я его передам, я хочу выполнить хранимую процедуру в базе данных с параметрами, взятыми из этого JSON.Angular2 Service не передается JSON на WebAPI

Что здесь происходит, однако вместо того, чтобы:

  • Соединение успешно разрешен к веб-службы - Хорошо, я получаю ответ от сервера

  • Debug.WriteLine на выходах Web Service «VAR: 0 0» вместо действительных параметров в формате JSON

не уверен даже, с чего начать, это проблема с веб-службы не в состоянии ч и послал ли JSON или его Угловое значение, не передавая значение правильно? Что не так?

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; 
} 

Web Service:

 [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(); 
     } 

ответ

1

Удалите первый 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) 
+0

Это отлично работает. Благодарю. –

Смежные вопросы