Как добавить JavaScript в ASP.NET MVC View? - PullRequest
33 голосов
/ 29 марта 2009

У меня есть простое представление, и я хочу добавить JQuery DatePicker JavaScript в это представление (а не каждое представление через мастер-страницу).

Я не уверен, что это лучший способ сделать это.

Во-вторых, я осознаю, где / когда загружается мой 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>

Ответы [ 3 ]

22 голосов
/ 11 апреля 2011

В ASP.NET MVC3 теперь вы можете использовать RenderSection для достижения этой цели, по крайней мере, для более простых сценариев. Просто добавьте RenderSection внизу страницы макета и, по вашему мнению, введите код приложения

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

15 голосов
/ 29 марта 2009

Ваша мастер-страница должна иметь ContentPlaceHolder для головы.

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

Затем вы можете включить элементы заголовка (JavaScripts, StyleSheets и т. Д.) В свои представления:

<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>
12 голосов
/ 29 марта 2009

Один из способов - поместить заполнитель содержимого внизу главной страницы, затем конкретная подчиненная страница, для которой требуется javascript, может указать содержимое заполнителей в качестве необходимого javascript. На других страницах, которые не нуждаются в javascript, просто не указывается контент для заполнителя.

...