我是否需要将_ValidationScriptsPartial.cshtml的javascript源添加到_layout.cshtml?

Joh*_*ohn 10 asp.net-mvc asp.net-core

在Asp.net 5项目中,默认情况下我有一个名为_ValidationScriptsPartial.cshtml的文件,

<environment names="Development">
    <script src="~/lib/jquery-validation/jquery.validate.js"></script>
    <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
</environment>
<environment names="Staging,Production">
    <script src="//ajax.aspnetcdn.com/ajax/jquery.validation/1.11.1/jquery.validate.min.js"
            asp-fallback-src="~/lib/jquery-validation/jquery.validate.js"
            asp-fallback-test="window.jquery && window.jquery.validator">
    </script>
    <script src="//ajax.aspnetcdn.com/ajax/mvc/5.2.3/jquery.validate.unobtrusive.min.js"
            asp-fallback-src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"
            asp-fallback-test="window.jquery && window.jquery.validator && window.jquery.validator.unobtrusive">
    </script>
</environment>
Run Code Online (Sandbox Code Playgroud)

但是当我需要使用jquery验证时,我必须添加

<script src="~/lib/jquery-validation/jquery.validate.js"></script>
        <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
Run Code Online (Sandbox Code Playgroud)

到_layout.cshtml的下面部分.

<environment names="Development">
            <script src="~/lib/jquery/dist/jquery.js"></script>
            <script src="~/lib/bootstrap/dist/js/bootstrap.js"></script>
            <script src="~/lib/hammer.js/hammer.js"></script>
            <script src="~/lib/bootstrap-touch-carousel/dist/js/bootstrap-touch-carousel.js">
           I HAVE TO ADD SCRIPT FOR JQUERY VARIDATION HERE
            </script>
        </environment>
Run Code Online (Sandbox Code Playgroud)

那么_ValidationScriptsPartial.cshtml的目的是什么?如何在项目中使用该文件?请给我参考如何使用这个文件?

Joe*_*tte 17

部分视图旨在用于其他视图.您通常不会将验证脚本添加到_layout.cshtml,因为它会在每个页面上使用,但如果您有一个需要使用这些scipts的视图,则只需在视图的.cshtml文件中添加部分视图,如下所示:

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

如果您使用VS 2015创建了带有身份的标准Web项目,那么您可以在Views/Account/Register.cshtml中看到此用法的示例

  • 虽然这个答案被赞成并接受,但它并没有解释为什么验证脚本不应该添加到“_Layout.cshtml”中。`_ValidationScriptsPartial.cshtml` 的存在是为了引用验证脚本,但同样的验证脚本也可以从 `_Layout.cshtml` 引用。将它们分离到“_ValidationScriptsPartial.cshtml”的理由/好处是什么? (6认同)