2009-04-23 55 views
4

我更喜欢使用外部的CSS和JavaScript文件。然而,在很多情况下,javascript或css文件的内容需要是动态的。我通常会将javascript或css转换为aspx页面中的内联或inpage代码,并处理那里的动态内容。有没有人使用ASP.net(webforms)动态生成JavaScript和/或CSS文件?

有没有人有更好的方法?有没有办法使用asp.net的常规模板语言生成完整的js或css文件?

我目前使用webforms,但我也有兴趣在MVC中解决这个问题。

感谢

回答

4

我已经使用了HTTPHandler之前发回动态JavaScript。但不是从System.Web.UI.Page继承的东西。

使用HTTPHandler和ASHXAXD是动态发回资源的“ASP.Net”方法。

+0

据我所知,AXD用于嵌入静态资源或组合脚本。我同意ashx,因为它是我用过的(也是自定义处理程序类)。 – eglasius 2009-04-23 18:35:16

+0

我不确定“最佳实践”,但我们经常将.axd url映射到后端的HTTPHandlers。尽管如此,.axd也是嵌入式资源的扩展。 – 2009-04-23 18:43:30

2

我已经使用处理程序的动态CSS。根据您的需要,您可以对js文件执行相同的操作。

我有一个css文件,需要像## bacgroundcolor ##这样需要动态变化的部分占位符,并且处理程序只是根据需要进行替换。

我也使用了一种方法,我使用css类来标记需要特殊行为的html元素。然后,静态js,查找这个元素并挂钩相应的处理程序。这是肯定会更容易与jquery(我做它与普通的js当时:()。

1

我已经在一个aspx页面做过,但在我看来,WebForm风格不适合本身很好地呈现严格的JavaScript或CSS,每次我完成它,页面看起来有点像经典ASP

+0

首先,通过将静态文件移动到常规文件并仅保留动态内容,最大限度地减少要发送的内容。此外,您可以将文件用作占位符的模板。 – eglasius 2009-04-23 18:37:37

0

希望你使用的实际JavaScript保持静态,你只需传递参数到JavaScript的方法

0

我已经采取了JavaScript代码已经在页面的标记和包含像<%= control.ClientID %>的东西,并用静态JavaScript替换它我重构了c颂成一个类,然后我将这些可变部分重构为类成员。该页面将创建类的实例,并设置诸如ClientID之类的内容。这些功能可以是静态的。