Я обычно использую совершенно разные модели, так как я обычно следую шаблону CQRS, поэтому то, что я запрашиваю в GET, не очень похоже на то, когда я посылаю команду через POST или PUT, но я думаю, вы могли бы сделатьчто-то вроде этого:
public class AddUpdateAddressType
{
[Required]
[StringLength(50, MinimumLength = 2)]
public string Name { get; set; }
public string Description { get; set; }
}
public class AddressType : AddUpdateAddressType {
[JsonProperty(Order = -10)]
public int Id { get; set; }
[JsonProperty(Order = 98)]
[DataType(DataType.DateTime)]
public DateTime CreatedOn { get; set; }
[JsonProperty(Order = 99)]
[DataType(DataType.DateTime)]
public DateTime ModifiedOn { get; set; }
}
Тогда в действиях вашего контроллера метод GET украшен
[HttpGet("{id:int}")]
public async Task<IActionResult> Get(int id)
{
// fetch and return Address
}
, и ваши методы POST (или PUT) могут выглядеть примерно так
[HttpPost]
public async Task<IActionResult> Add(AddAddressType addressType)
{
// save AddAddress and return whatever
}
Надеюсь, это поможет.