C# 如何创建通用自定义模型绑定器

C# 如何创建通用自定义模型绑定器,c#,asp.net-mvc,entity-framework-6,asp.net-core-mvc,C#,Asp.net Mvc,Entity Framework 6,Asp.net Core Mvc,我遇到了一些问题,默认的模型绑定器不断为间接字段抛出ModelState错误。考虑以下事项: public class Model1 { public int Id; [Required] public string Name; [Required] public string Type; } public class Model2 { public int Id; [Required] public string Nam

我遇到了一些问题,默认的模型绑定器不断为间接字段抛出ModelState错误。考虑以下事项:

    public class Model1 {
    public int Id;
    [Required]
    public string Name;
    [Required]
    public string Type;
}

public class Model2 {
    public int Id;
    [Required]
    public string Name;
    [Required]
    //selected via a dropdown consisting of all Model1 record names and Id for value
    public Model1 Model1;
    }
在典型控制器中创建/编辑Model2实体时,如果没有Model2.Name和Model2.Model1的任何值,则应仅获取它们的模型状态错误。但是,我也会收到Model1.Type的错误,因为在本例中我不填充Model1.Type,因为我不需要它。我只是填充Model1的下拉列表,然后填充Model1.Name


如何编写一个足够通用的定制活页夹:只验证相关模型的直接字段/属性。在这种情况下,只需验证Model2.Model1和Model2.Name。

我猜这是您的域模型。出于视图的目的,Model2只需要将Model1的Id传递回链接这两个实体。考虑创建一个视图模型来模拟视图的需求,而不是整个域的需求。我宁愿不创建视图模型,因为我正在使用TeleRIK直接通过模型填充/编辑网格。