私は間違いなくあなたが言及した理由のために部分的な部分の中に入れないことをお勧めします。あるビューが同じjsファイルへの参照を持っている2つの部分集合を引っ張る可能性が高くなります。また、残りのhtmlをロードする前にjsをロードすることでパフォーマンスが低下しました。
ベストプラクティスについてはわかりませんが、マスターページ内に共通のjsファイルを含めてから、特定のまたは少数のビューに固有のいくつかの追加のjsファイル用に個別のContentPlaceHolderを定義します。
ここに、マスターページの例があります。それはかなり自明です。
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
<head runat="server">
... BLAH ...
<asp:ContentPlaceHolder ID="AdditionalHead" runat="server" />
... BLAH ...
<%= Html.CSSBlock("/styles/site.css") %>
<%= Html.CSSBlock("/styles/ie6.css", 6) %>
<%= Html.CSSBlock("/styles/ie7.css", 7) %>
<asp:ContentPlaceHolder ID="AdditionalCSS" runat="server" />
</head>
<body>
... BLAH ...
<%= Html.JSBlock("/scripts/jquery-1.3.2.js", "/scripts/jquery-1.3.2.min.js") %>
<%= Html.JSBlock("/scripts/global.js", "/scripts/global.min.js") %>
<asp:ContentPlaceHolder ID="AdditionalJS" runat="server" />
</body>
Html.CSSBlock
& Html.JSBlock
明らかに私自身の拡張ですが、再び、彼らは何をすべきかで自明です。
はその後SignUp.aspx
ビュー言うに私は
<asp:Content ID="signUpContent" ContentPlaceHolderID="AdditionalJS" runat="server">
<%= Html.JSBlock("/scripts/pages/account.signup.js", "/scripts/pages/account.signup.min.js") %>
</asp:Content>
HTHS、チャールズ
Psのを持っているでしょう。要求されたとして私の他の回答に要求されたとして、.JSBlock(a, b)
の私の実装を: -
EDIT ASP.NET MVC場でORビルド時に&縮小化JSを連結:ここで私は縮小化やJSファイルを連結について尋ねられたフォローアップの質問です
public static MvcHtmlString JSBlock(this HtmlHelper html, string fileName)
{
return html.JSBlock(fileName, string.Empty);
}
public static MvcHtmlString JSBlock(this HtmlHelper html, string fileName, string releaseFileName)
{
if (string.IsNullOrEmpty(fileName))
throw new ArgumentNullException("fileName");
string jsTag = string.Format("<script type=\"text/javascript\" src=\"{0}\"></script>",
html.MEDebugReleaseString(fileName, releaseFileName));
return MvcHtmlString.Create(jsTag);
}
そして魔法が起こる...
public static MvcHtmlString MEDebugReleaseString(this HtmlHelper html, string debugString, string releaseString)
{
string toReturn = debugString;
#if DEBUG
#else
if (!string.IsNullOrEmpty(releaseString))
toReturn = releaseString;
#endif
return MvcHtmlString.Create(toReturn);
}
'$'は私がpressumed jqueryのためのものです。メインビューにjqueryライブラリを追加してください – Sherlock
これはあなたを助けるかもしれません、http://stackoverflow.com/questions/885990/linking-javascript-libraries-in-user-controls/886184#886184 –
私はリンクを共有してくれてありがとうSmit ..それは働いた.. – user3106445