2016-08-28 5 views
0

CSSテンプレートをMVCアプリケーションに変換しています。言うまでもなく、私はwebdesignの初心者です。テンプレートには、1つのjsスクリプトへの参照が含まれています。ランディングページ以外のすべてのページに含める必要があります。ランディングページ以外のすべてのビューに1つのjsスクリプトを含める方法

<script type="text/javascript" src="js/slider_func_innerpage.js"></script> 

別のマスターページを作成せずにMVCで達成するにはどうすればよいですか?私はデフォルトビュー以外のすべてのビューにこの行を挿入しようとしましたが、何も起こりませんでした。理想的には、_Layout.cshtmlファイルでこれを処理したいと思います。実際には、上記の1行を含む部分ビューを呼び出すif条件を設定することは可能ですか?または、jsファイルをデフォルトのビューを除くすべてのビューにロードするよりエレガントな方法がありますか?

+0

はそれが –

+0

おそらくはい、私はちょうど差は1行だけである二つの同一のレイアウトを持つことのアイデアのようにいけない行う方法ですので、私はいくつかの問題を回避するに – Jozef

答えて

1

ランディングページの別のレイアウトを作成したくない場合は(なぜそうですか?の正しい方法です)、このjsファイルをレイアウトに条件付きで読み込むことが考えられます。

だからランディングページ用のビューでは、このフラグをチェックし、レイアウトに

@{ 
    ViewBag.IsLandingPage = true; 
} 

今ViewBag辞書にフラグを設定し、それがnullで、真でない場合は、お使いのjsファイルを含めることを除外する

二つの異なるレイアウトページを使用して
@{ 
    if (ViewBag.IsLandingPage == null) 
    { 
     <script type="text/javascript" src="js/slider_func_innerpage.js"></script> 
    } 
} 
+0

感謝をしようとしています、これは助けになった。 1つの余分な行のために、2つのマスターレイアウトがあまりにも多くの仕事として私に見えました。また、私が後で学んだように、このjsファイルは単純なパラメタ(1つのDIVの高さ)だけを変更していました。私はJqueryでそのパラメータを変更しようとしますが、今のところこれはうまくいく、 – Jozef

+0

完了します。 Jqueryでそれを変更し、私にはきれいに見えます。それでも、あなたが示唆したようにViewBag.IsLandingPageを使用しなければなりませんでした。再度、感謝します。 – Jozef

関連する問題