Kendo 网格填充并发布所有导航属性

Kendo Grid populates and posts all of the navigation properties

我有一个 Kendo UI 网格,它使用 Serial class 作为模型。此 class 与 row class 相关,但我没有在我的网格中使用任何导航属性,并且我不需要在该特定页面中使用它们。

问题是,Kendo UI 填充了所有外键关系。因此 row class 及其自身的所有导航属性都将被填充。当我尝试保存我的编辑时,Kendo 发布了所有这些数据,这导致 ModelState.IsValid 始终是 false。你有什么建议吗?

这是 Serial class,每个 属性 都有一个字段。

public class Serial
{
    [Key]
    [Column(TypeName = "BIGINT", Order = 0)]
    public Int64 LiIdR { get; set; }
    [ForeignKey("LiIdR")]
    public virtual Rows Row { get; set; }

    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Int16 SRadifS { get; set; }
    public string AFromSerial { get; set; }
    public string AToSerial { get; set; }
    public int? IQnty { get; set; }
    public string AExpireDate { get; set; }
    public string AComment { get; set; }
}

在您的视图中使用生成的 Entity Framework 对象通常是一种不好的做法。您的视图不应依赖于数据访问层。

您应该做的是将 EF 实体转换为 business/data 层中的视图模型(仅包含您的网格需要的内容)。这将解决您的问题。

在 edit/create 上,您只需将视图模型转换回 EF 对象并将更改保存到数据库。

如果出于某种原因,您的视图需要某些您不想向用户显示的属性,您可以将它们作为 Hidden() 列添加到网格中。然后他们将被发回控制器。