Что нужно изменить или добавить, чтобы сообщение валидации появилось под инпутом?
Все встроенные атрибуты работают в форме, но собственный атрибут не отображает message.
Класс атрибута
using System.ComponentModel.DataAnnotations;
namespace SytePortfolio
{
public class UserName:RegularExpressionAttribute
{
public UserName():base(@"[A-ZА-Я][a-zа-я]{1,29}")
{
}
}
}
Модель
using System;
using System.ComponentModel.DataAnnotations;
namespace SytePortfolio
{
public partial class UserProfile
{
public int IdUser { get; set; }
[UserName(ErrorMessage = "С заглавной буквы, от 2 до 30 букв")]
public string NameUser { get; set; }
[StringLength(50, MinimumLength = 1, ErrorMessage = "От 1 до 50 символов")]
public string SurnameUser { get; set; }
[StringLength(50, MinimumLength = 2, ErrorMessage = "От 2 до 50 символов")]
public string MiddlenameUser { get; set; }
public DateTime? AgeUser { get; set; }
[StringLength(300, MinimumLength = 1, ErrorMessage = "От 1 до 300 символов")]
public string AdressUser { get; set; }
[EmailAddress]
public string AmailUser { get; set; }
[Phone]
public string PhoneUser { get; set; }
public int? MainImg { get; set; }
}
}
Форма
<div class="form-group">
<h6>Имя</h6>
<input asp-for="@Model.OneUser.NameUser" class="form-control textInput" />
<span asp-validation-for="@Model.OneUser.NameUser" class="text-danger"></span>
@Html.ValidationMessageFor(m => m.OneUser.NameUser, "*")
</div>