模型的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 数据