2009-03-29 14 views
32

私はシンプルなビューを持っていて、このビューにJQuery DatePicker JavaScriptを追加したいと思います。ビューではなく、マスターページからです。ASP.NET MVCビューにJavaScriptを追加するにはどうすればよいですか?

これを行うにはどうすればよいか分かりません。

第2に、JavaScriptがどこにロードされているかを意識しています。私はYSlowのファンであり、ページの下部にスクリプトを追加することをお勧めします。

どうすれば両方のことができますか?

は、ここでビューの:

<%@ Page 
    Language="C#" 
    MasterPageFile="~/Views/Shared/Site.Master" 
    Inherits="System.Web.Mvc.ViewPage" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server"> 

    <h2>Index</h2> 

    <% using (Html.BeginForm()) {%> 

    <p> 
     <label for="StartDate">Start Date:</label> 
     <!-- JQuery DatePicker to be added, here. --> 
    </p> 
    <% } %> 
</asp:Content> 

答えて

12

一つの方法は、あなたのマスターページの下部に、必要なJavaScriptなどのプレースホルダの内容を指定することができますJavaScriptが必要、特定のスレーブ・ページでコンテンツプレースホルダを入れています。 javascriptを必要としない他のページでは、単にプレースホルダのコンテンツを指定しません。

+0

は乾杯:)記録のために、私はの一番下に新しいのContentPlaceHolderを追加しましたページ、タグのすぐ上にあります。それについての議論は、ここ:http://developer.yahoo.net/blog/archives/2007/07/high_performanc_5.html –

+0

合意は、通常、頭の中に1つ持っています..私はノエで働いているプロジェクトです非常にJS重いので、jquery&jquery uiはマスター経由でロードされます...クライアントブラウザはログイン時にこれを取得し、キャッシュできます... – Tracker1

15

あなたのMasterPageには頭のContentPlaceHolderが必要です。

<head runat="server"> 
    <title></title> 
    <asp:ContentPlaceHolder ID="head" runat="server" /> 
</head> 

は、その後、あなたの意見にヘッド素子(JavaScriptの、スタイルシート、など...)が含まことができるしている:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 
    <script src="/Scripts/jquery/ui/ui.datepicker.js" type="text/javascript"> 
    </script> 
    <link href="/Styles/myStyle.css" rel="stylesheet" type="text/css" /> 
</asp:Content> 
+1

この回答は、それがページの下部に追加されるべきだと言っていました。だからwinob0tは目を奪う。 –

22

ASP.NET MVC3で、あなたは今までRenderSectionを使用することができますこれを達成するには、少なくともシンプルなシナリオでは、ただ、

RenderSections appliationコードを記入レイアウトページの一番下にRenderSectionを追加し、あなたのビューから:http://www.dotnetcurry.com/ShowArticle.aspx?ID=636

+1

RenderSectionsリンクの+1。それは私が探していたものでした。 – rein

関連する問題