web-dev-qa-db-ja.com

JavaScriptをASP.NET MVCビューに追加するにはどうすればよいですか?

単純なビューがあり、このビューに JQuery DatePicker JavaScript を追加します(everyビューではなく、マスターページ)。

これを行うための最良の方法がわからない。

次に、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>
33
Pure.Krome

1つの方法は、マスターページの下部にコンテンツプレースホルダーを配置し、JavaScriptを必要とする特定のスレーブページがプレースホルダーコンテンツを必要なJavaScriptとして指定できるようにすることです。 JavaScriptを必要としない他のページは、単にプレースホルダーのコンテンツを指定しません。

12
LaserJesus

ASP.NET MVC3では、少なくとも単純なシナリオでは、RenderSectionを使用してこれを実現できます。レイアウトページの下部にRenderSectionを追加し、ビューからアプリケーションコードを入力するだけです

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

22
Kamau Malone

MasterPageには、ヘッド用のContentPlaceHolderが必要です。

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

次に、ビューにヘッド要素(JavaScript、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>
15
CMS