在编辑器/显示模板中使用节我希望将所有JavaScript代码保存在一个部分中;就在结束之前body标签在我的主布局页面,只是想知道最好的去它,MVC风格。例如,如果我创建一个DisplayTemplate\DateTime.cshtml文件,它使用jQueryUI的datetimePicker,而不是我将JavaScript直接嵌入到该模板中,但随后它将呈现页面中部。在我正常的视图中,我可以用@section JavaScript { //js here }然后@RenderSection("JavaScript", false)在我的主布局中,但这在显示/编辑器模板中似乎不起作用-有什么想法吗?
3 回答
江户川乱折腾
TA贡献1851条经验 获得超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>)
- 3 回答
- 0 关注
- 485 浏览
相关问题推荐
添加回答
举报
0/150
提交
取消