最初にEFコードで作成されたモデルにシリアル化するAngular/Jsonクライアントから呼び出されるWepApiがあります。製品モデルを投稿し、post/save関数内にchangedateプロパティを設定したいと思います。ModelState.IsValid = falseを取得しましたが、efモデルプロパティを保持したい回避策はありますか
[Required]
public DateTime ChangeDate { get; set; }
このエラートレイの投稿を取得する
{"$ id": "1"、 "メッセージ": "エラーが発生しました。"、 "ExceptionMessage":"タイプ'Entity.Product'のプロパティ'ChangeDate'が無効です。[必須]とマークされた値タイプのプロパティまた、必要に応じて認識されるようにするには、[DataMember(IsRequired = true)]でマークする必要があります。宣言型を[DataContract]で帰属させることを検討してください。
CODEモデル
[DataContract]
public class Product
{
public Product()
{
ChangeDate = DateTime.Now;
}
//Serialization
[DataMember]
//DataAnnotations
[DisplayName("ProductId")]
[Description("ProductId")]
public int ProductId { get; set; }
//Serialization
[DataMember(IsRequired = true)]
//DataAnnotations
[DisplayName("ChangeDate")]
[Description("Date when product last was changed")]
[Required]
[DisplayFormat(DataFormatString = "{0:d}")]
public DateTime ChangeDate { get; set; }
//Serialization
[DataMember]
//DataAnnotations
[DisplayName("Name")]
[Description("Name")]
[Required(ErrorMessage = " ")]
[StringLength(100)]
public String Name { get; set; }
public HttpResponseMessage Post(Entity.Product product,Boolean directSave = true)
{
if (ModelState.IsValid)
{
product.ChangeDate = DateTime.Now;
_productRepository.Add(product);
if (directSave)
_context.Save();
var response = Request.CreateResponse(HttpStatusCode.Created, product);
response.Headers.Location = GetLocation(product.ProductId);
return response;
}
return Request.CreateResponse(HttpStatusCode.BadRequest);
}