这是我的要求:
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解析为auth。我的json字符串获取发送目前看起来像这样。
{
"auth": {
"username": "admin",
"password": "admin1"
}
}
如果只是
{
"username": "admin",
"password": "admin1"
}
然后它没有任何问题。但是我需要它来消耗第一个json示例
答案 0 :(得分:1)
关于在c#中接收整个班级。
你不会得到类。建议的电汇是JSON
,它只会为您提供对象属性。
查找JSON序列化。互联网上充满了C#+ AngularJS的例子。
答案 1 :(得分:0)
阿诺,
您应该在web api方法中收到一个json对象。
然后使用Json.Net将您的json对象转换为您想要的C#对象。
希望它有所帮助。
答案 2 :(得分: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);