我的自定义验证工作正常,我已对其进行了测试,但错误消息未显示。
我的注释:
[Required(ErrorMessage = "O campo DATA DE NASCIMENTO é obrigatório")]
[DataValida( ErrorMessage = "O campo DATA DE NASCIMENTO é inválido")]
public DateTime DataNascimento { get; set; }
我的验证定义:
public class DataValida : ValidationAttribute
{
public override bool IsValid(object value)
{
DateTime dt;
bool result = DateTime.TryParse(value.ToString(),out dt);
return result;
}
}
我的观点:
<div>
<label for="tbNome">Data Nascimento:</label>
<input id="tbDataNascimento" type="text" maxlength="10" placeholder="DD/MM/AAAA" asp-for="DataNascimento" class="form-control" />
<span asp-validation-for="DataNascimento" class="text-danger"></span>
</div>
所需的验证显示消息,但我的自定义验证没有。
obs:我已禁用客户端验证。
答案 0 :(得分:0)
如果您的要求只是为了确保最终用户输入了有效日期,只需使用DataTypeAtribute而不是重新发明轮子:
[DataType(DataType.DateTime)]
public DateTime DataNascimento { get; set; }
答案 1 :(得分:0)
发生错误时我正在重定向。
if(ModelState.IsValid)
{
}
else
{
return RedirectToAction("action"); //this will cause error messages not to show
return View(objectToPass); //This will work
}