Asp.net mvc 重定向ASP.NET MVC核心客户端验证错误消息

Asp.net mvc 重定向ASP.NET MVC核心客户端验证错误消息,asp.net-mvc,jquery-validate,asp.net-core-mvc,materialize,unobtrusive-validation,Asp.net Mvc,Jquery Validate,Asp.net Core Mvc,Materialize,Unobtrusive Validation,我想使用TagHelpers和ASP.NET MVC CORE server生成的客户端验证(通过Jquery验证和不引人注目的验证),但不幸的是,我不能使用生成的默认span元素。例如: <form asp-action="Index" asp-controller="Test" class="validate-form"> <div class="row"> <div class="inpu

我想使用TagHelpers和ASP.NET MVC CORE server生成的客户端验证(通过Jquery验证和不引人注目的验证),但不幸的是,我不能使用生成的默认span元素。例如:

        <form asp-action="Index" asp-controller="Test" class="validate-form">
            <div class="row">
                <div class="input-field col s6">
                    <input asp-for="Id" class="validate" />
                    <span asp-validation-for="Id"></span>
                </div>
            </div>

            <button type="submit">CREATE</button>
        </form>

但不幸的是,由于ASP.NET添加了所有不引人注目的javascript,它似乎被忽略了。有人知道我的解决方案的更好的解决方案或修复方案吗?欢迎任何回答!是的,我试着制作自定义TagHelper,但找不到解决问题的方法。

要更改错误元素,您需要使用
errorElement
选项。我在您的
setDefaults()
方法中看不到这一点。但是,插件的默认值是
标签
,如果Unobtrusive已经将其更改为
span
,那么您唯一的选择就是首先不要使用Unobtrusive。请参阅:要更改错误元素,需要使用
errorElement
选项。我在您的
setDefaults()
方法中看不到这一点。但是,插件的默认值是
标签
,如果Unobtrusive已经将其更改为
span
,那么您唯一的选择就是首先不要使用Unobtrusive。见:
<form class="validate-form" action="/Opportunity/1" method="post" 
novalidate="novalidate">
    <div class="row">
        <div class="input-field col s6">
            <input class="validate valid" type="number" data-val="true" data-val-required="The Id field is required." id="Id" name="Id" value="1" aria-describedby="Id-error" aria-invalid="false">
            <span class="field-validation-valid" data-valmsg-for="Id" data-valmsg-replace="true"></span>
        </div>
    </div>

    <button type="submit">CREATE</button>
    <input name="__RequestVerificationToken" type="hidden" value="...">
</form>
    <div class="input-field col s12">
      <input id="Id" type="text" class="validate">
      <label for="Id" data-error="error message">Email</label>
    </div>
$.validator.setDefaults({
    errorClass: 'invalid',
    validClass: "valid",
    errorPlacement: function (error, element) {
        $(element)
            .parent('.input-field')
            .find("label[for='" + element.attr("id") + "']")
            .attr('data-error', error.text());
    }
});