如何将JavaScript添加到ASP.NET MVC视图?

时间:2009-03-29 04:43:42

标签: javascript jquery asp.net-mvc views

我有一个简单的视图,我希望在此视图中添加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 个答案:

答案 0 :(得分:22)

在ASP.NET MVC3中,您现在可以使用RenderSection来实现此目的,至少对于更简单的场景。只需将RenderSection添加到布局页面的底部,然后从视图中填写应用代码

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

答案 1 :(得分:15)

您的MasterPage应该有头部的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>

答案 2 :(得分:12)

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