ASP.NET Core 7.0客户端验证失效问题求助
ASP.NET Core 7.0 客户端验证失效问题解决
你的问题核心出在两个关键错误上:手动覆盖输入框的name属性,以及缺少表单包裹元素,导致验证框架无法关联模型规则和触发验证逻辑。
问题分析与修复步骤:
移除手动设置的
id和name属性asp-for标签助手会自动生成与模型属性完全匹配的id和name值(比如TestNumber对应name="TestNumber"),这是客户端验证框架识别属性验证规则的核心依据。你手动设置的name="testn"、name="tests"和模型属性名不匹配,直接导致验证规则无法绑定到对应的输入框。用
<form>标签包裹所有输入元素
ASP.NET Core的非侵入式验证要求输入控件必须处于表单内,才能正常监听输入行为并触发验证。你当前的代码没有表单容器,验证脚本无法工作。验证脚本引入确认
确保_ValidationScriptsPartial.cshtml中包含以下两个必要脚本:<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script> <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>同时要确认
_Layout.cshtml中已提前引入jQuery核心库,因为验证脚本依赖它运行。
修正后的完整页面代码:
@page @model PrivacyModel @{ ViewData["Title"] = "Privacy Policy"; } <h1>@ViewData["Title"]</h1> <p>Use this page to detail your site's privacy policy.</p> <form method="post"> <label asp-for="TestNumber">Enter number</label> <input type="text" asp-for="TestNumber" /> <span asp-validation-for="TestNumber"></span> <br /><br /> <label asp-for="TestString">Enter string</label> <input type="text" asp-for="TestString" /> <span asp-validation-for="TestString"></span> <br /><br /> <button type="submit">Submit</button> </form> @section Scripts{ <partial name="_ValidationScriptsPartial" /> }
内容的提问来源于stack exchange,提问作者Chris Fellows
相关产品推荐
相关产品推荐

