Рассмотрим следующий код:
public class AccountNumber
{
[AccountNumber] //This validator confirms the format of the account number
public string Value {get; set;}
public int Format { get; set;}
public string ToString()
{
return Value + " is format " + Format;
}
}
public class MyViewModel
{
public MyViewModel()
{
SourceAccount = new AccountNumber();
DestinationAccount= new AccountNumber();
}
[Required]
AccountNumber SourceAccount {get; set;}
AccountNumber DestinationAccount {get; set;}
}
А потом, в моем представлении:
@Html.EditorFor(model => model.SourceAccount.Value)
@Html.EditorFor(model => model.DestinationAccount.Value)
По сути, я хочу сказать, что пользователь должен ввестиисходную учетную запись, и что они дополнительно вводят целевую учетную запись.Тем не менее, если они действительно войдут в учетную запись назначения, она должна соответствовать определенному формату.
Проблема с кодом выше состоит в том, что требуемый валидатор на SourceAccount всегда будет возвращать действительный, поскольку SourceAccountникогда не бывает нулевымКакой будет хороший подход для реализации того, что я пытаюсь достичь?
Обратите внимание, что в реальной жизни установщик для Value
является более сложным, чем показано, поскольку он переформатирует номер счета в каноническом формате..
Редактировать Обратите внимание, что мы должны использовать встроенную проверку MVC, поскольку это то, что в настоящее время использует остальная часть проекта.