2009-03-29 17 views
32

Mam prosty widok i chcę dodać JQuery DatePicker JavaScript do tego widoku (a nie każdy widok, poprzez stronę wzorcową).Jak dodać JavaScript do widoku ASP.NET MVC?

Nie jestem pewien, jaki jest najlepszy sposób na zrobienie tego.

Po drugie, mam świadomość, gdzie/kiedy ładuje się JavaScript. Jestem fanem YSlow i poleca dodanie skryptów na dole strony, co robię.

Jak mogę zrobić jedno i drugie?

oto widok:

<%@ 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> 

Odpowiedz

12

Jednym ze sposobów jest umieścić zawartość zastępczy w dolnej części strony głównej, a następnie konkretnej stronie niewolniczej że potrzebuje JavaScript może określić zawartość Placeholder'ów jako wymagane javascript. Inne strony, które nie potrzebują javascriptu, po prostu nie określają żadnej treści dla symbolu zastępczego.

+0

Cheers :) Dla przypomnienia, dodałem nową ContentPlaceHolder na dnie stronę, tuż nad tagiem. Dyskusja na ten temat, tutaj: http://developer.yahoo.net/blog/archives/2007/07/high_performanc_5.html –

+0

Zgadzam się, zazwyczaj będę mieć także jedno w głowie .. projekt, nad którym pracuję, to bardzo ciężki JS, więc jquery i jquery ui są ładowane przez master ... Przeglądarka klienta dostaje to przy logowaniu i może buforować to ... – Tracker1

15

Twoja strona MasterPage powinna zawierać ContentPlaceHolder dla głowy.

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

Wtedy jesteś w stanie zawierać elementy Head (JavaScripts, arkusze stylów, etc ...) w widokach:

<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

ta odpowiedź była lepsza, z wyjątkiem tego, że kładła to w głowie .. kiedy ja powiedział, że powinien zostać dodany na dole strony. Więc winob0t dostaje kleszcza. –

22

w ASP.NET MVC3 można teraz używać do RenderSection osiągnąć to, przynajmniej w przypadku prostszych scenariuszy. Wystarczy dodać RenderSection na dole strony układu, a od widoku wypełnić kodu appliation

RenderSections: http://www.dotnetcurry.com/ShowArticle.aspx?ID=636

+1

+1 dla linku RenderSections. Tego właśnie szukałem. – rein

Powiązane problemy