Надежная проверка MVC, если значение выше

У меня есть форма MVC с переключателями, указывающими тип бизнеса. Если тип бизнеса - "Ограниченный" или "ПЛК", в форме отображаются дополнительные регистрационные номера компании и поля адреса зарегистрированного офиса. Я хочу убедиться, что оба поля заполнены, если значение переключателя больше 2.

@Html.LabelFor(x => x.CorporateIdentityId, "Sole Trader")
@Html.RadioButtonFor(x => x.CorporateIdentityId, "1", new { @checked = "checked" })
@Html.LabelFor(x => x.CorporateIdentityId, "Partnership")
@Html.RadioButtonFor(x => x.CorporateIdentityId, "2")
@Html.LabelFor(x => x.CorporateIdentityId, "Limited Company")
@Html.RadioButtonFor(x => x.CorporateIdentityId, "3")
@Html.LabelFor(x => x.CorporateIdentityId, "Plc")
@Html.RadioButtonFor(x => x.CorporateIdentityId, "4")

Таким образом, я установил Foolproof Validation. Будучи дураком, я думал, что это было бы идеальным решением.

На мой взгляд модель у меня есть:

public int CorporateIdentityId { get; set; }
[Required]
[GreaterThan("CorporateIdentityId")]
[DisplayName("Reg Number")]
public string CompanyRegistration { get; set; }

Я хотел бы указать значение в атрибуте GreaterThan, то есть:

[GreaterThan ("CorporateIdentityId", "2")]

Но это не похоже на это. И, конечно, кажется, нет документации или примеров, как это сделать. Все примеры, кажется, просто показывают подразумеваемые значения - текущая дата, true / false и т. Д. Нет явных значений для сравнения.

Я просто спрашиваю слишком много о проверке надежности? Если так, есть ли альтернатива, которую я мог бы использовать?

1 ответ

Добавить конструктор в свой атрибут GreaterThanAttribute

 public class GreaterThanAttribute : Attribute
{
    private string _propertyName;
    private string _propertyvalue;

    public GreaterThanAttribute(string propertyName, string propertyvalue)
    {
        _propertyName = propertyName;
        _propertyvalue = propertyvalue;
        throw new NotImplementedException();
    }

   //your IsValid Logic 
Другие вопросы по тегам