33 votes

Comment puis-je ajouter du Javascript à une vue ASP.NET MVC?

simple question, j'en suis sûr (blush). J'ai un simple point de Vue et je souhaite ajouter un DatePicker de JQuery javascript de ce point de vue (et pas tous les afficher, via une masterpage).

Je ne suis pas sûr de ce qui est la meilleure façon de le faire.

Deuxièmement, je suis la conscience de l'endroit où/quand mon Javascript charges. Je suis un fan de YSlow et il recommande que-je ajouter des scripts en bas de la page, ce qui je ne.

Alors .. comment pourrais-je faire les deux?

Voici la vue

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

acclamations ;)

22voto

Kamau Malone Points 473

Dans ASP.NET MVC3, vous pouvez désormais utiliser une RenderSection pour ce faire, du moins pour des scénarios plus simples. Ajoutez simplement une RenderSection au bas de la page de présentation et, à partir de votre vue, entrez le code d’application.

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

15voto

CMS Points 315406

Votre MasterPage devrait avoir un ContentPlaceHolder pour la tête.

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

Vous pouvez ensuite inclure des éléments de tête (JavaScripts, StyleSheets, etc ...) dans vos vues:

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

12voto

LaserJesus Points 1288

Une solution consiste à placer un espace réservé de contenu au bas de votre page maître, puis la page esclave spécifique nécessitant le javascript peut spécifier le contenu des espaces réservés comme étant le javascript requis. Les autres pages qui n'ont pas besoin de javascript ne spécifient tout simplement pas de contenu pour l'espace réservé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X