将json从angular发送到c#时值为0或null

时间:2017-05-29 09:57:24

标签: c# json api angular post

我的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。有任何想法吗?非常感谢!

1 个答案:

答案 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));
  }