最近我参与了一个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; }
}
类似于上面显示的示例,我在本地测试,它运行良好,完全没问题。
问题
但是一旦我发布并部署到工作服务器,自定义验证就无法工作,它不会验证该值,也不会抛出任何错误消息。我无法弄清楚原因。
由于环境不同,我认为它有配置吗?需要启用自定义验证属性才能使其工作。但我无法弄清楚配置的位置和内容。
任何人都知道发生什么问题?或者它没有这样的配置,只有我的代码有问题。
很抱歉没有提供足够的代码,只是想知道配置问题或编码问题
很抱歉,如果我严重解释情况。 任何帮助将不胜感激。感谢。
答案 0 :(得分:0)
请检查是否已成功发布2 dll以下的已发布环境
Microsoft.Web.Mvc.DataAnnotations.dll
汇编和System.ComponentModel.DataAnnotations.dll
汇编
原因可能是您的环境中缺少dll。
如果解决方案适合您,请告诉我。