【问题标题】:Client Side Validation Doesn't Work In Nested Layouts in Asp.Net Core Razor Pages客户端验证在 Asp.Net Core Razor 页面的嵌套布局中不起作用
【发布时间】:2019-01-16 05:54:34
【问题描述】:

我在我的 Razor Pages 应用程序中创建了一个学生特定的布局,并将其作为嵌套布局放在 _Layout 中。现在问题是当在 _StudentLayout 中打开创建页面时,客户端验证不起作用!但是,当 Create 页面正常打开时,这意味着在应用程序的 _Layout 内,它确实运行良好! 这是 Create 顶部的代码:

@{
ViewData["Title"] = "Create";
Layout = "~/Pages/Shared/_StudentLayout.cshtml";}

这是 _StudentLayout 中的代码:

            <div class="col-md-10">
            @{
                Layout = "~/Pages/Shared/_Layout.cshtml";
            }
            <div class="mt-3">
                @RenderBody()
            </div>
        </div>

如何让客户端验证在嵌套布局中工作?这里有什么问题?

【问题讨论】:

  • “不起作用”是什么意思?你有错误吗?您是否检查过浏览器的控制台是否有任何提示?
  • @MikeBrind 我的意思是客户端验证不会触发。

标签: asp.net-core layout razor-pages client-side-validation


【解决方案1】:

我将脚本复制到嵌套布局(_StudentLayout),现在客户端站点验证正在运行,但这个解决方案对我来说听起来不合适。我的看法是,一旦你在 _Layout 中加载了所有内容,嵌套布局应该理想地选择它们,而无需再次将它们放入嵌套布局中。有什么意见吗? 这是我所做的:

            ...
            <div class="col-md-10">
            @{
                Layout = "~/Pages/Shared/_Layout.cshtml";
            }
            <div class="mt-3">
                @RenderBody()
            </div>
        </div>
    </div>
</div>
<script src="~/lib/jquery/dist/jquery.js"></script>
<script src="~/lib/Bootstrap4.0/js/bootstrap.min.js"></script>
<script src="~/js/site.js"></script>
@RenderSection("Scripts", required: false)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-20
    • 1970-01-01
    • 2021-09-24
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 2021-02-01
    相关资源
    最近更新 更多