2016-06-01 8 views
0

私はjavascriptファイルをsite.jsに追加していましたが、そのページはスクリプトを認識していましたが、バリデーションスクリプトを移動しようとしたときにしわを感じましたsite.js.Asp.net Core MVCバリデーションスクリプトを別ファイルとして扱います

Site.jsは

@{await Html.RenderPartialAsync("_ValidationScriptsPartial");} 

を使用してではなくページ上にあるページの検証スクリプトを持つページに追加されている検証スクリプトの上に表示されます(または、これはほとんどの人がそれを行う方法です)どのように上記のエントリの下に追加する可能性のあるvalidation.jsページなどを追加しますか?さらに、

別のページを追加すると、それをどのように縮小するか(GULPに追加する)、プロダクションに追加しますステージング環境も同様です。

答えて

1

@section Scripts { 
    @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); } 
} 

、次にように、本体の下部に_Layout.cshtmlでそれを参照してください:そして、あなたができるようになります

@RenderSection("scripts", required: false) 

あなたのようにセクションにレンダリングする検証スクリプトを置くべきであると終了フォームを検証すると、これらのJSファイルは参照したビューにのみ表示されます。

私はそれを縮小化(一息にそれを追加)し、同様に生産ステージング環境でそれを追加するにはどうすればよいの別のページを追加しない場合..

あなたは一度、あなたのJSファイルを縮小化する必要がありますあなたのすべてのビュー(ページ)のために、彼らは動作します。

+0

私はすでに私のページの一番下にそれを持っています。この例では、カスタムの検証スクリプトにオーストラリアのATO番号を検証するためのカスタムスクリプトを示しています。私はそれが自分のファイルにある必要がありますが、それを使用するページの下部に現在、そのような状況の下で私はこのカスタム検証スクリプトをどこに置くべきか尋ねる。質問を残念にしていた。 – si2030

+0

検証セクションにある場合は、セクションでファイルがレンダリングされる順序を変更し、検証が失敗したファイルを見逃したファイルをブラウザの開発者ツールで確認します。それらを別のファイルに置くこともオプションです。しかし、同じセクションに入れることをお勧めします。 –

0

スクリプトはページのレンダリングをブロックしてユーザーに遅く表示されるため、理想的にはすべてのスクリプトをページの最後に読み込むことをお勧めします。これを達成する方法は、レイアウトファイルのセクションを使用することです。

次のコードを追加できます。レイアウトファイルで

:次に、あなたの意見にあなたは、彼らが必要とする特定のスクリプトを追加することができます

@rendersection("scripts", required: false) 

を:

@section scripts { 
    @Scripts.Render("~/Scripts/Validation.js") 
} 

スコット区はその良いblog postを持っていますセクションをもう少し深く説明します

細分化については、付属の組み込みおよび縮小ツール最近のmvc?今度はRick Andersonの別のblog postがありますが、本質的にはあなたのためにスクリプトを自動的にバンドルして縮小するように設定できるさまざまなバンドルを定義することができます。バンドルを定義するのと同じくらい簡単です:あなたは、あなたが定義したバンドルリンクを使用する代わりに、ソースファイルへのリンクを除き、上記のよう

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
      "~/Scripts/jquery-{version}.js")); 

そして、あなたのページにそれらをoutputingは同じです。上記のように出力すると、次のようになります:

@Scripts.Render("~/bundles/jquery") 
関連する問題