在編輯器/顯示模板中使用節(jié)我希望將所有JavaScript代碼保存在一個部分中;就在結(jié)束之前body標(biāo)簽在我的主布局頁面,只是想知道最好的去它,MVC風(fēng)格。例如,如果我創(chuàng)建一個DisplayTemplate\DateTime.cshtml文件,它使用jQueryUI的datetimePicker,而不是我將JavaScript直接嵌入到該模板中,但隨后它將呈現(xiàn)頁面中部。在我正常的視圖中,我可以用@section JavaScript { //js here }然后@RenderSection("JavaScript", false)在我的主布局中,但這在顯示/編輯器模板中似乎不起作用-有什么想法嗎?
3 回答

江戶川亂折騰
TA貢獻1851條經(jīng)驗 獲得超5個贊
public static class HtmlExtensions{ public static MvcHtmlString Script(this HtmlHelper htmlHelper, Func<object, HelperResult> template) { htmlHelper.ViewContext.HttpContext.Items["_script_" + Guid.NewGuid()] = template; return MvcHtmlString.Empty; } public static IHtmlString RenderScripts(this HtmlHelper htmlHelper) { foreach (object key in htmlHelper.ViewContext.HttpContext.Items.Keys) { if (key.ToString().StartsWith("_script_")) { var template = htmlHelper.ViewContext.HttpContext.Items[key] as Func<object, HelperResult>; if (template != null) { htmlHelper.ViewContext.Writer.Write(template(null)); } } } return MvcHtmlString.Empty; }}
_Layout.cshtml
:
<body>...@Html.RenderScripts()</body>
@Html.Script( @<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>)
添加回答
舉報
0/150
提交
取消