2009-04-23 20 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之類的內容。這些功能可以是靜態的。