首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >可以从ASPX文件后面的代码中调用Scripts.Render或Styles.Render吗?

可以从ASPX文件后面的代码中调用Scripts.Render或Styles.Render吗?
EN

Stack Overflow用户
提问于 2013-01-22 23:30:00
回答 3查看 11.5K关注 0票数 19

有没有办法从代码背后复制@:Scripts/Styles.Render帮助器的行为?

如果我使用BundleTable.Bundles.ResolveBundleUrl方法引用捆绑包,那么即使使用debug=true也会发生捆绑和缩小。我已经阅读了其他问题,通过使用前面提到的助手,解决方案似乎非常明显。但在我的例子中,我不知道在aspx中的包的名称,它是在运行时在后台代码中生成的。

因此,我需要在头部添加引用,从代码背后添加引用,但我找不到方法。

有什么办法吗?或者我将被强制在.aspx文件中执行此操作?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-29 07:02:30

是啊!

这就是我对Web表单所做的工作。此示例将资源添加到<head>,但也适用于Controls.Add()适用的任何控件

对于CSS:

代码语言:javascript
复制
System.Web.UI.WebControls.Literal lit = new System.Web.UI.WebControls.Literal();
lit.Text = System.Web.Optimization.Styles.Render("~/bundles/my_css").ToHtmlString();
Header.Controls.Add(lit);

对于JS:

代码语言:javascript
复制
System.Web.UI.WebControls.Literal lit = new System.Web.UI.WebControls.Literal();
lit.Text = System.Web.Optimization.Scripts.Render("~/bundles/my_js").ToHtmlString();
Header.Controls.Add(lit);

另外,由于ASPX是codebehind的一个子类,理论上你可以通过在codebehind中将其设置为一个受保护的(或公共的)变量来从ASPX中获取包的名称(但你并没有发布所有的代码,所以我不确定你到底在做什么)。

票数 26
EN

Stack Overflow用户

发布于 2014-10-04 01:05:28

您也可以只以内联方式呈现脚本

代码语言:javascript
复制
<%: Scripts.Render("~/bundles/my_js") %>
票数 6
EN

Stack Overflow用户

发布于 2013-11-12 19:59:28

这也可能对后来来这里的人有所帮助。

不使用文本控件的备用选项:

代码语言:javascript
复制
  ClientScript.RegisterStartupScript(typeof(Page), "MyJS", Scripts.Render("~/bundles/bundledJS").ToHtmlString(), false);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14462112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档