数据校验,在哪里添加Html.RenderPartialAsync("_ValidationScriptsPartial")?

For data validation, where to add Html.RenderPartialAsync("_ValidationScriptsPartial")?

在我的 ASP.NET Core 1.1.1 应用程序中,model validation 无法正常工作。我注意到一些默认的views(例如login.cshtmlRegister.cshtml是在创建应用程序时由VS2017创建的)最后有以下代码.但这些默认视图实际上是部分视图。我的观点不是部分观点,是否也应将以下内容添加到我的 views 末尾?或者我应该在不是部分视图的视图末尾添加什么:

@section Scripts {
    @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
}

嗯,

@section Scripts {
    @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
}

用于 "client side validation" (javascript)。如果表单无效(根据模型验证),它不会让用户发送表单。

如果您打开 /Views/Shared/_Layout.cshtml,您将在其底部看到以下代码:

@RenderSection("Scripts", required: false)

此代码块是 @section Scripts 中的内容将被注入的地方,在这种情况下,部分视图的内容 _ValidationScriptsPartial

required: false 一样,如果您的视图不需要客户端验证,则无需添加 @section Scripts 代码。

关于 _ValidationScriptsPartial 视图名称中的 Partial 这意味着视图本身是部分视图,不打算直接提供。它不能与 "it should be used in partial views".

混淆

更多信息:

https://docs.microsoft.com/en-us/aspnet/core/mvc/views/layout#sections

Injecting content into specific sections from a partial view ASP.NET MVC 3 with Razor View Engine

此致。