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

У меня есть форма MVC с переключателями, указывающими тип бизнеса. Если тип бизнеса — Limited или PLC, в форме отображаются дополнительные регистрационный номер компании и поля адреса зарегистрированного офиса. Я хочу убедиться, что оба поля заполнены, если значение переключателя больше 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, т.е.:

[Больше чем ("CorporateIdentityId", "2")]

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

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


person ComfortablyNumb    schedule 10.08.2015    source источник
comment
Надежный GreaterThanAttribute означает, что если вы примените его так, как у вас есть, то значение CompanyRegistration должно быть больше значения CorporateIdentityId, поэтому, если вы выбрали "Limited Company", значение CompanyRegistration должно быть 4 (или больше). Вам нужно будет написать свой собственный атрибут проверки и методы проверки jquery для достижения того, чего вы хотите.   -  person    schedule 11.08.2015


Ответы (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 
person gurdeep    schedule 01.08.2016