我有一个简单的视图,我希望在此视图中添加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>
答案 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的页面根本没有为占位符指定任何内容。