2017-07-12 4 views
0

私はC#web APIで次のリクエストを使用しますか?ここでC#は角4クラスを使用します

は私のリクエストである:ここでは

this._http.post(
     this.url + 'api/Test', 
     { auth: this.authClass}, 
     { headers: this.header } 
    ).map(
     (res) => res.json() 
    ).subscribe(
     (res) => { 
     console.log("VALUE RECEIVED: ", res); 
     }) 

は私AuthClassです:

export class Auth{ 
    username:string = ""; 
    password:string = ""; 
} 

私はC#で同じクラスを持っていると私は、全体としてのクラスを受けて行くのですか知っておく必要がありますC#で。

私が試した:

[HttpPost] 
public IHttpActionResult login(HttpRequestMessage request) 
{ 
    var jsonString = await request.Content.ReadAsStringAsync(); 
    var model = JsonConvert.DeserializeObject<auth>(jsonString); 
    return Ok(); 
} 

を私の問題は、それが認証にJSONを解析することができないということです。私のjson文字列は現在、このように見えます。

{ 
    "auth": { 
     "username": "admin", 
     "password": "admin1" 
    } 
} 

そのだけで

{ 
    "username": "admin", 
    "password": "admin1" 
} 

それは何の問題もなく動作する場合。しかし、私はそれが最初のjsonの例を消費する必要があります

+0

は、角度2を使用していないが、あなたは、このような別のプロパティでwarppedない、オブジェクトを直接投稿することができます: ポスト( this.url + '認証/登録'、 this.regClass は) – aspark

答えて

1

全体としてクラスを受信することについて約#。

クラスはになりません。推奨電信送金はJSONで、それはあなたにオブジェクトのプロパティを与えるだけです。

続きを読む

Lookup JSON serialization。インターネットにはC#+ AngularJSの例がたくさんあります。

0

アルノ、

あなたのWeb APIメソッドでJSONオブジェクトを受け取る必要があります。

次に、Json.Netを使用して、jsonオブジェクトを必要なC#オブジェクトに変換します。

希望します。

0

答えは、authクラスを別のクラスの中にラップすることでした。

public class authReq 
{ 
    public auth request { get; set; } 
} 

public class auth 
{ 
    public string username { get; set; } 
    public string password { get; set; } 
} 

次に、authReqをそうするように逆シリアル化します。

var model = JsonConvert.DeserializeObject<register>(jsonString); 
関連する問題