模型的Angular-Web api post方法为null

Posted

技术标签:

【中文标题】模型的Angular-Web api post方法为null【英文标题】:Angular-Web api post method of model is 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 吗?如果没有,那么您可能需要一个单独的视图模型 【参考方案1】:

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

public void Disconnect([FromBody] ModelCategory model)   

【讨论】:

以上是关于模型的Angular-Web api post方法为null的主要内容,如果未能解决你的问题,请参考以下文章

如何在目标c中的asp.net web api方法中使用POST方法?

Django Rest API,如何为 2 个模型条目创建 post api,并具有与模型关联的外键

ASP.NET Web API - 模型绑定不适用于 POST 上的 XML 数据

Dotnet Web API 项目的自动生成控制器的 POST 方法存在问题

来自json的web api 2绑定模型

没有存储的 Python Django Rest Post API