Пользовательский атрибут проверки не работает после публикации

Недавно я работал над проектом MVC, и мне нужно было создать собственный атрибут проверки для определенной модели,

[AttributeUsage(AttributeTargets.Property)]
public class TimeGreaterThanAttribute : ValidationAttribute
{
    public TimeGreaterThanAttribute(string timeToCompareToFieldName, string dayOff)
    {
        TimeToCompareToFieldName = timeToCompareToFieldName;
        DayOff = dayOff;
    }

    private string TimeToCompareToFieldName { get; set; }
    private string DayOff { get; set; }

    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        ... 
    }
}

public class ScreenConfigViewModel
{
    public bool WholeDayOff { get; set; }
    public string StartTime { get; set; }
    [TimeGreaterThan("StartTime", "WholeDayOff")]
    public string EndTime { get; set; }
}

Что-то вроде примера, показанного выше, и я протестировал локально, он работает довольно хорошо и вообще без проблем.

Проблема

Но как только я публикую и развертываю на рабочем сервере, пользовательская проверка не работает, она не проверяет значение, не выдает никаких сообщений об ошибках. И я не могу понять, почему.

Я предположил, что из-за другой среды на нем есть конфигурация? Где требуется включить настраиваемый атрибут проверки, чтобы он работал. Но я не могу понять, где и какая конфигурация.

Кто-нибудь знает, в чем проблема? или у него нет такой конфигурации, и проблема только в моем коде.

Извините, что не предоставил достаточно кодов, просто пытаюсь понять, что это: проблемы с конфигурацией или проблемы с кодированием

Извините, если плохо объясняю ситуацию. Любая помощь в этом будет оценена. Спасибо.


person Dean    schedule 08.05.2018    source источник
comment
Новая среда находится в другом часовом поясе или настроена с другой культурой?   -  person John Wu    schedule 08.05.2018
comment
@JohnWu среда настроена в том же часовом поясе, что и моя местная культура.   -  person Dean    schedule 08.05.2018
comment
Это может быть проблема развертывания. Возможно, отсутствует файл js или параметр web.config? Есть ли другие проверки, которые работают?   -  person Peter Smith    schedule 08.05.2018
comment
Покажите свой код для метода IsValid()   -  person    schedule 08.05.2018


Ответы (1)


Пожалуйста, проверьте, опубликованы ли в опубликованной среде ниже 2 dll успешно или нет Microsoft.Web.Mvc.DataAnnotations.dll сборки и System.ComponentModel.DataAnnotations.dll сборки

Причина может заключаться в отсутствии DLL в вашей среде.

Дайте мне знать, если решение сработало для вас.

person Priyanka Jain    schedule 08.05.2018
comment
Код OP даже не запустился бы, если бы dll отсутствовали. - person ; 08.05.2018