我的Angular& C#项目有问题。我是个乞丐,我有这个问题。当我将json从angular发送到C#(POST)时,虽然json有值,但c#没有得到任何东西(int为0,null为null)。我不知道我做错了什么。 Json有这样的结构:
[{"delegacion":11,"municipio":1,"ejercicio":2017,"ninterno":-1,"tipo":"T"}]
我的代码
角
preparaTarea(){
this.data.push({'delegacion':this.delegacion,
'municipio':this.municipio,
'ejercicio':this.ejercicio,
'ninterno':this.ninterno,
'tipo':this.tipo_producto});
this._DelegationService.sendPtipo(this.data)
.subscribe(res=>{
this.data = res;
},
(err) =>console.log(err));
}
sendPtipo(data){
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
let urlPtipo ='http://localhost:50790/ApiProductoTipo/CalculaPTRecinto';
let body = JSON.stringify(data);
console.log(body);
return this._http.post(urlPtipo , body , options)
.map(data => {alert('ok');})
.catch(this.handleError);
}
private handleError(error: Response) {
console.error(error);
return Observable.throw(error.json().error || 'Server error');
}}
C#
public class MyObj
{
public int delegacion { get; set; }
public int municipio { get; set; }
public int ejercicio { get; set; }
public int ninterno { get; set; }
public string tipo { get; set; }
}
[HttpPost]
[Route("~/ApiProductoTipo/CalculaPTRecinto")]
public HttpResponseMessage CalculaPTRecinto([FromBody]MyObj data)
{
var delegacion = data.delegacion;
var municipio = data.municipio;
var recinto = data.ninterno;
var ejercicio = data.ejercicio;
var tipo = data.tipo;
if (this.productoTipoService.CalculaPTRecinto(delegacion, municipio, recinto, ejercicio, tipo) != 0)
{
return Request.CreateResponse(HttpStatusCode.OK);
}
else
{
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
}
当我调试时,delegacion,municipio等的值有0值,而对于tipo则为null。有任何想法吗?非常感谢!
答案 0 :(得分:0)
最后我解决了我的问题
preparaTarea() {
//Changing array by this
let datos = { "delegacion":this.delegacion,
"municipio":this.municipio,
"ejercicio":this.ejercicio,
"ninterno":this.ninterno,
"tipo":this.tipo_producto
};
this._CalculoPTService.sendPtipo(datos)
.subscribe(res => {
datos = res;
},
(err) => console.log(err));
}