Допустим, у меня есть эта DomainModel:
public class Product
{
public string Name { get; set; }
public string Description { get; set; }
public string SomeBackendValue { get; set; }
}
В приложении продукт может быть создан / отредактирован как из внешнего интерфейса, так и из внутреннего интерфейса, но только внутренний интерфейс может изменять SomeBackendValue.
В интерфейсе Имя и Описание являются обязательными полями, в серверной части они все.
Если я добавлю [Required]
во все поля в DomainModel, я получу ошибку ModelState, потому что SomeBackendValue пусто.
Я мог бы, вероятно, не указывать атрибут [Required] в SomeBackendValue и выполнить проверку OnPost, но в реальном приложении есть много других отличий, поэтому я подумал, что могу использовать разные View- / InputModels для frontend / но я не могу добраться до работы.
Я пробовал:
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
, но это дает мне предупреждение в каждом поле о сокрытии унаследованного члена.
Как мне это сделать?