gpt4 book ai didi

razor - 在 _Layout.cshtml ASP.NET MVC 5 中启用自定义脚本

转载 作者:行者123 更新时间:2023-12-04 02:11:13 25 4
gpt4 key购买 nike

我正在构建 MVC 5,SignalR 实时通知应用程序,我想将我的工作脚本放在 _Layout.cshtml 中,因为例如在添加新项目时我想显示 toastr 通知,但脚本将它放在 _Layout.cshtml 中不起作用,我在 BundleConfig 中添加了脚本,但它不起作用。注意:除 _Layout.cshtml 之外的所有页面都可以正常工作谁能帮我?非常感谢。这是我的代码:

$(document).ready(function () {
toastr.options = {
"closeButton": true,
"debug": false,
"newestOnTop": false,
"progressBar": true,
"positionClass": "toast-top-right",
"preventDuplicates": false,
"showDuration": "300",
"hideDuration": "1000",
"timeOut": "5000",
"extendedTimeOut": "1000",
"showEasing": "swing",
"hideEasing": "linear",
"showMethod": "fadeIn",
"hideMethod": "fadeOut"
};
$(function () {

var notificationhub = $.connection.notificationHub;

notificationhub.client.displayMessage = function (message) {

toastr.success(message);
//$('#notification').html(message);
};

$.connection.hub.start();

}); });

如果我将它放在 @section scripts{} 中的任何页面上,这个脚本就可以工作我的 _Layout 脚本部分如下所示:

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@Scripts.Render("~/bundles/notifications")
@RenderSection("scripts", required: false)

但是这种方式行不通。我如何才能在我的 _Layout 页面中正确实现我的脚本以在任何地方显示通知。

最佳答案

在您的 _Layout.cshtml 页面中,@RenderSection("scripts", required: false) 部分仅用作实现 @sections scripts {} 的页面的占位符,因此你为什么会看到你的行为。这是 Razor 布局引擎的一部分。

有关这一切如何运作的更多信息,请参阅 ScottGu 博客上的一篇可能有所帮助的文章:ASP.NET MVC 3: Layouts and Sections with Razor

为了让脚本包包含在 _Layout 基页中,您需要直接在页面上呈现它,就像呈现其他包一样。它应该看起来像这样:

@Scripts.Render("~/bundles/scripts")

**哪里scripts是您希望包含的脚本包的名称。

现在如果你想直接把脚本放在页面上,你也可以这样做。只需确保使用正确的 HTML 语法将其正确括起来即可。请记住,任何使用 _Layout.cshtml 作为其布局的页面都将包含 _Layout.cshtml 中的所有脚本。

关于razor - 在 _Layout.cshtml ASP.NET MVC 5 中启用自定义脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38130413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com