Помощник по тегу asp-validation-for не работает для ошибок проверки на стороне сервера

CustomerEntryModel

    [Required]
    public String FirstName { get; set; }

CustomerController.cs

    [HttpGet]
    [Route("Get")]
    public IActionResult Get()
    {
        CustomerEntryModel model = new CustomerEntryModel();
        return View("CustomerEntry", model);
    }

    [HttpPost]
    [Route("Update")]
    public ActionResult Update([FromForm]CustomerEntryModel model)
    {
        if (!ModelState.IsValid)
        {
            return View("CustomerEntry", model);
        }
        return null;
    }

CustomerEntry.cshtml

@addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers"
<form asp-controller="Customer" asp-action="Update" method="post">
    <input type="text" asp-for="FirstName" />
    <span asp-validation-for="FirstName" />
    <input type="submit" value="Submit" />
</form>

Я не включаю библиотеки проверки jQuery, поэтому проверка происходит на стороне сервера. Теперь, когда я отправляю страницу с пустым именем, выполняется действие обновления, и я получаю обратно то же представление, но без каких-либо ошибок.

Вместо <span asp-validation-for="FirstName" /> Tag Helper, если я использую HTML помощник @Html.ValidationMessageFor(m => m.FirstName) Я получаю необходимую ошибку для имени.

Согласно моему пониманию TagHelper расширяет поведение традиционных HtmlHelper обеспечить дружественный HTML опыт разработки. Это означает, что то, что работает с HtmlHelper должен работать с этим TagHelper коллега.

После ModelState.IsValid позвони, я МОГУ увидеть Controller.ModelState (экземпляр ModelStateDictionary), имеющий ошибку для FirstName имущество. Тем не менее TagHelper не может связать это.

Вы можете найти подробности помощников тега проверки MVC6 здесь,

http://www.davepaquette.com/archive/2015/05/14/mvc6-validation-tag-helpers-deep-dive.aspx

1 ответ

Решение

Я предлагаю попробовать изменить это:

<span asp-validation-for="FirstName" />

как это:

<span asp-validation-for="FirstName"></span>

может быть, это будет иметь значение

Другие вопросы по тегам