【发布时间】: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