У меня есть форма, которая должна работать даже при отключенном JavaScript, и мне нужно проверить эту форму, у меня есть помощник по тегу для нее, например:
<span asp-validation-for="ContactName" class="text-danger" />
И в моем контроллере:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(ContactViewModel contact)
{
if (!ModelState.IsValid)
{
return View(contact);
}
// do something
}
Вот моя модель просмотра:
public class ContactViewModel
{
public int ContactId { get; set; }
public DateTime ContactDate { get; set; }
[Required(ErrorMessage ="پر کردن این فیلد الزامی میباشد.")]
[MaxLength(100, ErrorMessage ="حداکثر تعداد کراکتر برای این فیلد نمیتواند بیشتر از صد باشد.")]
public string ContactName { get; set; }
[Required(ErrorMessage = "پر کردن این فیلد الزامی میباشد.")]
[EmailAddress(ErrorMessage ="لطفا یک ایمیل معتبر وارد کنید.")]
[MaxLength(100, ErrorMessage = "حداکثر تعداد کراکتر برای این فیلد نمیتواند بیشتر از صد باشد.")]
public string ContactEmail { get; set; }
[Required(ErrorMessage = "پر کردن این فیلد الزامی میباشد.")]
[MaxLength(4000, ErrorMessage = "حداکثر تعداد کراکتر برای این فیلد نمیتواند بیشتر از چهار هزار باشد.")]
public string ContactBody { get; set; }
[Range(1000000000, double.MaxValue, ErrorMessage = "لطفا یک شماره تلفن معتبر وارد نمایید.")]
public string ContactPhone { get; set; }
}
Когда я использую помощник тега для проверки, сообщение проверки не отображается под текстовым полем, если проверка не выполняется, но когда я использую старые помощники Html, например:
@Html.ValidationMessageFor(model => model.ContactName)
Это работает, я хотел знать, это задумано или это ошибка? Также стоит отметить, что помощник тега сводки проверки работает, если я установил его asp-validation-summary="ValidationSummary.All", но мне нужно сообщение проверки для отдельного текстового поля в форме, хотя?