加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何从编辑器模板添加JavaScript或css引用

发布时间:2020-12-16 07:38:41 所属栏目:asp.Net 来源:网络整理
导读:假设我们的应用程序不会使用 jqueryui,除了一个特定的编辑器模板.如果我想避免将jqueryui放到每个页面上(即我不想将它包含在我的_Layout.cshtml中默认加载的包中),我怎么能让编辑器模板包含jqueryui.js和jqueryui.css文件对我来说不会导致对这些文件的多次引
假设我们的应用程序不会使用 jqueryui,除了一个特定的编辑器模板.如果我想避免将jqueryui放到每个页面上(即我不想将它包含在我的_Layout.cshtml中默认加载的包中),我怎么能让编辑器模板包含jqueryui.js和jqueryui.css文件对我来说不会导致对这些文件的多次引用,并将引用放在标题或我的身体的末尾而不是内联?

这是我在编辑器模板中尝试过的似乎不起作用的内容:

@System.Web.Optimization.Scripts.Render("~/bundles/jqueryui")
@System.Web.Optimization.Styles.Render("~/Content/jqueryuistyles")

这添加了脚本和链接标记,但是每次使用编辑器模板时它都会呈现一次标记,并且它也会直接呈现它们,所以在我的情况下,这是在jQuery加载到正文的底部之前.

@section Scripts{ <script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bundles/jqueryui")"></script> }

这与我在_Layout.cshtml中包含bundle的方式相匹配,但这显然不适用于编辑器模板.什么都没有呈现,即使它确实如此,我认为它仍然会导致对JavaScript文件的多次引用(每次调用编辑器模板时为1)

似乎应该有一种方法让编辑器模板触发包含可以绑定到捆绑包或至少@section系统的JavaScript或css文件.有人知道怎么做吗?

解决方法

实现此目的的一种方法可以是使用当前请求上下文来请求所需的javascript文件.例如,在编辑器模板中,您可以编写类似这样的内容来请求javascript包含

HttpContext.Current.Items["Required.Script"] = "~/myeditortemplate.js";

然后在渲染任何可选脚本部分之前的布局中,您可以通过查看当前上下文来呈现所需的脚本

Scripts.Render(HttpContext.Current.Items["Required.Script"].ToString())

Scripts在MVC中使用脚本包的地方.或者,您可以简单地将脚本标记点src发送到所需的脚本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读