假设我有这个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
,但这在每个字段上都向我发出了有关隐藏继承成员的警告。
我该怎么做?