У меня есть форма ввода, содержащая несколько полей ввода.Каждое поле ввода имеет ElementModel
, который имеет свойства в основном для метки и значения.Поля ввода для отображения указываются в документе XML, поэтому у меня есть вид динамического представления только со списком элементов.
Проблема в том, что каждый элемент должен отображаться либо в десятичном виде, либо в процентном значении.И, конечно, если это процентное значение, пользователь должен иметь возможность ввести что-то вроде «45%», а значение в модели должно быть 0,45.
Моя первая мысль, когда я нашел этоСтатья заключалась в том, чтобы использовать класс модели абстрактного представления с абстрактным свойством для значения и определить PercentageElementModel
, производный от моего базового класса ElementModel
, который использует привязку пользовательской модели.К сожалению, если я использую этот абстрактный базовый класс в своем представлении, аннотации данных, сделанные в PercentageElementModel
, игнорируются.
Есть ли у вас какие-либо идеи о том, как я могу решить эту проблему?Я не хочу использовать строки в моей модели представления и выполнять синтаксический анализ самостоятельно, поскольку это нарушит шаблон MVC.Есть ли другие способы достичь моей цели?
Вот несколько фрагментов кода:
public abstract class ElementModel
{
public string ElementName { get; set; }
public ElementType ElementType { get; set; }
public abstract double? ElementValue { get; set; }
}
public class PercentageElementModel : ElementModel
{
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:P2}")]
public override double? ElementValue { get; set; }
}