【发布时间】:2021-04-14 10:42:21
【问题描述】:
抱歉,如果这是一个愚蠢的问题 - 我是 Razor 页面和 ASP.Net Core 的新手。
我有一个页面设置了数据绑定和模型上定义的各种属性,以提供一些基本的客户端验证,它们工作正常,但是我有一个日期字段,我需要确保它没有被设置为未来日期。
我知道如何验证日期是否为过去 - 这不是问题 - 但我希望能够验证日期并在字段下方的范围内显示错误消息,就像在必填字段时一样丢失、长度错误等。
我假设我可以按照以下方式向模型上的属性添加一些属性
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}, ApplyFormatInEditMode = true)")]
[Range(typeof(DateTime), "01/01/1980", DateTime.Today.ToString(), ErrorMessage = "Value must be in the past")]
public DateTime Date { get; set; }
但我得到一个错误,大意是我只能使用常量(我担心会出现这种情况)。
接下来,我查看了是否可以在代码中使该字段无效,但我不知道您将如何做到这一点,而且我无法在任何地方找到可比较的示例。我想我可以在页面的 ModelState 中添加一个错误,但我看不到如何。
正如我所说,我可以想到很多其他的验证方式,但我希望验证错误的一致性能够以与其他属性驱动的验证相同的方式呈现。
感谢您的帮助。
【问题讨论】:
标签: c# validation asp.net-core razor model-binding