2016-06-30 16 views
2

MVC 5、SignalRリアルタイム通知アプリを構築しています。たとえば、新しい項目を追加するときにtoastrを表示するために_Layout.cshtmlに作業スクリプトを配置します。通知が、スクリプトは_Layout.cshtmlが動作していない、スクリプトをBundleConfigに追加しましたが、動作しません。 注:_Layout.cshtml以外のすべてのページですべて正常に動作します。 誰でも助けてくれますか?たくさんのありがとう。_Layout.cshtmlでカスタムスクリプトを有効にするASP.NET MVC 5

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

しかし、この方法ではありません作品:私は@section scripts{} マイ_layoutスクリプト]セクションの任意のページ上の場所、それはこのようになりますよ場合

$(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(); 

}); }); 

このスクリプトは動作します: はここに私のコードです。 _Layoutページでスクリプトを正しく実装して、通知をすべて表示するにはどうすればよいですか。

答えて

3

_Layout.cshtmlページの部分@RenderSection("scripts", required: false)は、@sections scripts {}を実装しているページのプレースホルダとしてのみ機能しています。なぜあなたはその動作を見ているのですか?これは、Razor用のレイアウトエンジンの一部です。 _layoutベースページに含まれるスクリプトバンドルを取得するためにASP.NET MVC 3: Layouts and Sections with Razor

、あなたが直接レンダリングする必要があります。ここにすべての作品は、役立つかもしれScottGuさんのブログの記事であることを方法の詳細については

他のバンドルがレンダリングされているように、ページ上に表示されます。 scriptsはあなたが含めたいスクリプトバンドルの名前です**

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

:それは次のようになります。

これで、スクリプトをページに直接配置したい場合は、同様に行うことができます。正しいHTML構文で正しく囲むようにしてください。レイアウトとして_Layout.cshtmlを使用するページには_Layout.cshtmlに含まれるすべてのスクリプトが含まれることに注意してください。

+0

ありがとうございますryancdotnet。 –

0

ありがとう、ryancdotnet、ASP.NET MVC 3: Layouts and Sections with Razor 本当に役に立ちましたので、スクリプトを使用するすべてのページにスクリプトを配置するソリューションとして使用します。

関連する問題