当任何参数为空时,模型变为空

时间:2018-10-18 14:50:05

标签: c# post asp.net-core angular5

在Angular 5应用程序中,我想使用以下方法保存“事件”对象:

save(newEvent: NewEvent): Observable<any> {
    const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };
    const requestUrl = 'api/event';
    return this.http.post<any>(requestUrl, newEvent, httpOptions);
  }

NewEvent模型是:

export class NewEvent {
  id: number;
  title: string;...

  constructor() {
    this.id = null;
    this.title = '';...
  }
}

在使用.NET Core的控制器中的方法调用此方法之后:

[HttpPost("api/event")]
public IDictionary<string, Object> SaveEvent([FromBody] EventViewModel model){...}

EventViewModel POCO为:

{
    public class EventViewModel
    {
        public int Id { get; set; }
        public string Title { get; set; }...
    }
}

当我的对象EventViewModel不具有“空”值的属性时,它没有问题,但是当我具有“空”属性时,它不起作用(EventViewModel变为“空” ),有时我希望具有“空”属性。

1 个答案:

答案 0 :(得分:1)

您的C#模型的ID列具有不可为空的int。如果希望它可以为空(在javascript模型中将其设置为null),则应将其定义为int?Nullable<int>

另请参阅:Nullable Types.