【问题标题】:Angular-Web api post method of model is null模型的Angular-Web api post方法为null
【发布时间】:2019-03-26 01:46:12
【问题描述】:

在下面的代码中,模型总是为空,但 [frombody]string 参数没有问题 在 WebApiConfig 中设置 cors

 var cors = new EnableCorsAttribute(origins:"*",methods: "*", headers: "*");
        config.EnableCors(cors);

//控制器

[Route("SaveorUpdateCategory")]
    [HttpPost]
    public IHttpActionResult SaveorUpdateCategory(ModelCategory model)
    {
        string res = objcate.SaveorUpdateCategory(model);
        return Ok(res);

    }

//角度服务

  SaveorUpdateCategory( model: any): Observable<any> {
     this.headers= new Headers({ 'Content-Type': 'application/json' })
    this.options = new RequestOptions({ headers: this.headers });
   let body = JSON.stringify(model);
   return this._http.post(this.BaseURL+"Category/SaveorUpdateCategory", model, this.options)
       .map((response: Response) => <any>response.json())
        .catch(this.handleError);

}

模型样本是 {categry:'Test',Id:'1'} 当传递单个变量时得到值。但模型总是得到 null

将 cors 安装为 Install-Package Microsoft.AspNet.WebApi.Cors

【问题讨论】:

  • 能否贴出ModelCategory的c#代码
  • 公共类 ModelCategory { [Key] [Column("CategId")] public long CategId { get;放; } [Column("Category")] public string Category { get;放; } [Column("IsActive")] 公共字节 IsActive { get;放; } }
  • 模型区分大小写,我认为您需要以角度设置模型的所有属性(某些属性可以为 null 或默认值),然后重试。将 Json 设置为 {Category: 'Test', Id: 1, IsActive: 0} 。你在 Angular 中使用 Byte 吗?如果没有,那么您可能需要一个单独的视图模型

标签: angular asp.net-web-api cors angular6


【解决方案1】:

使用 FromBody 如下更改您的 web api 方法,

public void Disconnect([FromBody] ModelCategory model) {  }

【讨论】:

    猜你喜欢
    • 2017-03-29
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多