同一DomainModel的不同ViewModel

时间:2019-05-01 08:20:18

标签: c# model asp.net-core-2.2

假设我有这个DomainModel:

public class Product
{
    public string Name { get; set; }
    public string Description { get; set; }
    public string SomeBackendValue { get; set; }
}

我可以同时从前端和后端创建/编辑产品的应用程序,但是只有后端可以修改SomeBackendValue。

在前端,“名称”和“描述”是必填字段,在后端,它们都是必填字段。

如果将[Required]放在DomainModel的所有字段中,则会收到ModelState错误,因为SomeBackendValue为空。

我可能会忽略SomeBackendValue上的[Required]属性并执行OnPost验证,但是在实际应用中,还有更多不同的字段,因此我认为我可以为前端/使用不同的View- / InputModels后端,但我无法上班。

我尝试过:

public class ProductFrontend
{
    [Required]
    public string Name { get; set; }
    [Required]
    public string Description { get; set; }
}

public class ProductBackend
{
    [Required]
    public string Name { get; set; }
    [Required]
    public string Description { get; set; }
    [Required]
    public string SomeBackendValue { get; set; }
}

但是这些字段没有值,因为它们没有连接到DomainModel。

我也尝试过public class ProductFrontend : Product,但这在每个字段上都向我发出了有关隐藏继承成员的警告。

我该怎么做?

0 个答案:

没有答案