我需要在服務器上生成JavaScript。我可以通過使用ASPX頁面來模板JavaScript來做到這一點,但我收到警告,並且我沒有從我希望的語法高亮中受益。有沒有辦法告訴.Net環境/ Visual Studio某個ASPX頁面應該輸出非HTML文本?使用ASP.Net中的模板生成JavaScript
原因是本地化。我的本地化字符串來自服務器,我需要這些在頁面上的JavaScript結構。我想出的最簡單的方法是有一個JS文件(我現在稱之爲l18n.js),它定義了JSON對象中的本地化字符串。
l18n = {
OK: <%= GetString("OK") %>,
Cancel: <%= GetString("Cancel") %>,
ConfirmDialog: {
Title: <%= GetString("ConfirmTitle") %>,
Message: <%= GetString("ConfirmMessage") %>
}
// .. etc.
}
這讓我使用本地化的字符串在UI
var okButton = $('<button>' + l18n.OK + '</button>')
的其他部位但正如所說,只是拋出JavaScript的一個ASPX頁面內,l18n.js.aspx,導致警告和不提供語法高亮。有沒有更好的方法可以至少擺脫這個警告?目前一個是
代設計師文件的失敗:從HRESULT異常:0x80042929
而如果它的事項該項目是建立在NET 2.0的頂
澄清
語言不是用戶選擇的,所以它不應該一直改變,我應該能夠使用語言值作爲ETag,所以緩存不應該是一個大的問題UE。從瀏覽器的角度來看,我認爲模板JS是一個靜態文件,就像其他文件一樣。我只是不想聲明〜10靜態JS文件,如果我可以自動化它。
這可能會工作,但這不會迫使我內聯HTML體內的JavaScript?無論如何,這至少會迫使我內嵌JavaScript,而不是因爲某些個人喜好而想要做的事情。很高興知道有一種解決方案,以防從瀏覽器的角度無法將JavaScript以完全獨立的文件聲明! – 2009-06-04 10:11:59
我明白你的觀點。我沒有從你的問題中瞭解到這一點。好主意,但當有動態數據(應該是)時,請注意瀏覽器緩存.js文件。 – 2009-06-04 10:14:11
我認爲ropstah的回答很不錯,因爲瀏覽器緩存javascript並不重要。 – 2009-06-04 10:14:47