MVC4:ModelState在为Nullable字段传递null时无效

时间:2013-08-03 10:41:46

标签: asp.net-mvc json entity-framework

我正在创建一个带子菜单的菜单结构。 TopMenu-Items的ParentID应为NULL

我的模特:

    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更新topLevel菜单(ParentID = null)时,由于ParentID = null,我的ModelState无效

我可以使用ParentID = 0来解决顶层问题,但我想知道Null失败的原因,尽管我在模型中将其设为NULLABLE。

1 个答案:

答案 0 :(得分:1)

问题来自返回值“null”而不是“”(空字符串)。 我正在使用jtable(jtable.org)并为ParentID创建了一个自定义显示字段,这导致了问题,因为我在顶级显示了ParentIDs(1,2,.... 44 ..)和“null”。 所以“null”被贴回来,应该是“”