public abstract class Base : IBase
{
[Required]
public int key {get;set;}
}
public class Entity: Base
{
public string Name {get;set;}
}
public class child : Entity
{
[Required]
public string Park {get;set;}
}
ActionFilter即使默認值存在
public class ValidateViewModelAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
if (actionContext.ModelState.IsValid == false) {
actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, actionContext.ModelState);
}
}
}
現在,當值被髮布到API的話,不設置「重點」領域,因爲它是保存請求ModelState.Isvalid無效場。問題是,以上屬性表示,模型對字段「key」無效。它已經在那裏作爲Id字段的0值(作爲默認的int)。 我想,它應該驗證爲真,因爲0是默認值。
注意:我無法刪除或在上面的BASEENTITY和PARENT實體中進行任何更改。 我只控制CHILD實體和這個屬性類。
首先,您的編輯數據不要在您的視圖中使用數據模型 - 使用視圖模型。而且'int'不是可以爲空並且是必需的(你也有'[Required]'屬性,所以如果在請求中發送'null'或無效值,那麼'ModelState'將是無效的(但是屬性將被初始化爲其默認) –