33

我有一个简单的视图,我希望将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>
4

3 回答 3

22

在 ASP.NET MVC3 中,您现在可以使用 RenderSection 来实现这一点,至少对于更简单的场景是这样。只需在布局页面底部添加一个 RenderSection,然后从您的视图中填写应用程序代码

渲染部分:http: //www.dotnetcurry.com/ShowArticle.aspx? ID=636

于 2011-04-11T13:56:18.303 回答
15

您的 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>
于 2009-03-29T04:49:35.433 回答
12

一种方法是在母版页底部放置一个内容占位符,然后需要 javascript 的特定从属页面可以将占位符内容指定为所需的 javascript。其他不需要 javascript 的页面根本不为占位符指定任何内容。

于 2009-03-29T04:47:29.153 回答