You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Razor Pages视图客户端验证失效,Identity区域页面正常求助

解决Razor Pages客户端验证失效问题

1. 确保布局页面引入必要的验证脚本

客户端验证依赖三个核心脚本:jQuery、jQuery Validate 和 jQuery Validate Unobtrusive。检查你的_Layout.cshtml文件,在</body>标签前添加以下脚本引用(路径根据项目lib文件夹结构调整):

<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>

Identity区域页面验证正常,是因为其布局文件已包含这些脚本,而你的自定义页面使用的_Layout大概率遗漏了。

2. 确认Razor Pages客户端验证服务已启用

在Program.cs中,显式声明启用客户端验证(默认已开启,此步骤用于确保配置正确):

builder.Services.AddRazorPages()
    .AddViewOptions(options =>
    {
        options.HtmlHelperOptions.ClientValidationEnabled = true;
    });

3. 修正Razor Pages表单的路由属性

你的Create.cshtml是Razor Pages页面,表单需使用asp-page属性而非MVC控制器的asp-action,修改form标签:

<form asp-page="./Create" method="post">

4. 验证页面是否生成客户端验证属性

打开页面HTML源代码,检查输入框是否包含类似以下的验证属性:

<input asp-for="Name" class="form-control" data-val="true" data-val-required="The Naam field is required." />
<span asp-validation-for="Name" class="text-danger" data-valmsg-for="Name" data-valmsg-replace="true"></span>

如果没有这些属性,确认_ViewImports.cshtml中的标签助手已正确添加:

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

完成以上步骤后,客户端验证即可正常运行。

内容的提问来源于stack exchange,提问作者Max Huizing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 08:54:19