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

nam*_*nam 1 validation data-annotations razor asp.net-core-mvc

在我的ASP.NET Core 1.1.1应用程序中,模型验证不起作用。我注意到一些默认值views(例如login.cshtmlRegister.cshtml在创建VS2017应用程序时创建的)在末尾具有以下代码。但这些默认视图实际上是局部视图。我的视图不是局部视图,是否也应将以下内容添加到我的末尾views?或者我应该在不是部分视图的视图末尾添加什么:

@section Scripts {
    @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
}
Run Code Online (Sandbox Code Playgroud)

dim*_*2lo 6

好,

@section Scripts {
    @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
}
Run Code Online (Sandbox Code Playgroud)

用于“客户端验证”(javascript)。如果表单无效(根据模型验证),它不会让用户发送表单。

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

@RenderSection("Scripts", required: false)
Run Code Online (Sandbox Code Playgroud)

此代码块是内容 from@section Scripts将被注入的地方,在这种情况下,是 Partial View 的内容_ValidationScriptsPartial

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

关于Partialin _ValidationScriptsPartialview 名称,它意味着视图本身是部分的,不打算直接提供服务。它不能与“它应该在部分视图中使用”混淆。

更多信息:

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

使用 Razor 视图引擎将内容从部分视图 ASP.NET MVC 3 注入特定部分

问候。