发布

时间:2018-05-08 10:13:15

标签: c# asp.net-mvc validationattribute

最近我参与了一个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; }
}

类似于上面显示的示例,我在本地测试,它运行良好,完全没问题。

问题

但是一旦我发布并部署到工作服务器,自定义验证就无法工作,它不会验证该值,也不会抛出任何错误消息。我无法弄清楚原因。

由于环境不同,我认为它有配置吗?需要启用自定义验证属性才能使其工作。但我无法弄清楚配置的位置和内容。

任何人都知道发生什么问题?或者它没有这样的配置,只有我的代码有问题。

很抱歉没有提供足够的代码,只是想知道配置问题或编码问题

很抱歉,如果我严重解释情况。 任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

请检查是否已成功发布2 dll以下的已发布环境 Microsoft.Web.Mvc.DataAnnotations.dll汇编和System.ComponentModel.DataAnnotations.dll汇编

原因可能是您的环境中缺少dll。

如果解决方案适合您,请告诉我。