2013-08-03 3 views
2

하위 메뉴가있는 메뉴 구조를 만듭니다. 는 TopMenu-항목은 NULL의 ParentID을 가져야한다MVC4 : Nullable 필드에 null을 전달할 때 ModelState가 유효하지 않습니다.

내 모델 :

public Menu() 
    { 
     this.active = true; 
     this.publishStart = DateTime.Now; 
     this.seq = 1; 
    } 
    public string Name { get; set; } 
    public string Name_Sub { get; set; } 
    public string Url { get; set; } 
    public int? Level { get; set; } 
    public int? ParentID { get; set; } 
    public string Icon { get; set; } 
    public int? Status { get; set; } 

    public virtual Menu Parent { get; set; } 
    public virtual ICollection<Menu> ChildMenus { get; set; } 

modelBuilder.Entity<Menu>().HasOptional(s => s.Parent) 
    .WithMany(s => s.ChildMenus).HasForeignKey(s => s.ParentID); 

JSON을 통해 톱 레벨의 메뉴 (ParentID = NULL) 업데이트

, 내 ModelState 때문에 유효하지 않습니다 ParentID = null의

최상위 레벨에 대해 ParentID = 0으로 해결할 수 있지만 Null로 만들었지 만 Null이 실패하는 이유를 알고 싶습니다. 모델에서 LABLE.

+1

정확한 오류는 도움이 될 것입니다 ... – JasCav

+1

맞춤 모델 바인더가 있습니까? 기본 모델 바인더는 아무런 문제없이이 시나리오를 처리하기 때문에 내 첫 번째 추측은 일종의 사용자 정의 모델 바인더를 사용하고 있다는 것입니다 ... – Marko

+0

좋은 질문이지만, StackOverflow에서 정말로 대기하고 댓글에 신속하게 응답해야합니다. . –

답변

1

문제는 ""(빈 문자열) 대신 "null"반환 값에서 왔습니다. jtable (jtable.org)을 사용하고 있으며 ParentID (1,2, ... 44 ..) 및 "null"을 최상위 레벨에 표시 했으므로 문제를 일으킨 ParentID에 대한 사용자 정의 표시 필드를 만들었습니다. "null"이 다시 게시되었습니다. ""했어야합니다.

관련 문제