All posts tagged 'asp.net' | The Will Will Web

The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何動態修改巢狀 MasterPage 的 MasterPageFile 屬性

我前天遇到一個 ASP.NET 開發的問題,我有一個網站,其中有些頁面套用了一層的 MasterPage、有些套用了兩層 MasterPage、有些套用了三層 MasterPage,這些套兩層以上 MasterPage 的 MasterPage 在第二層的地方都是套用第一層的 MasterPage,不過客戶突然說第一層的 MasterPage 必須要依據不同的網域名稱(Domain Name)而選用不同的 MasterPage,最後耗了我三個小時才解決這個問題。

MasterPage 的套用關係大致的示意如下:

MasterPageTop.master
   ->  MasterPageChannel1.master
       -> MasterPageChannel1_1.master
           -> ContentPage.aspx

而我的需求是要動態變更 MasterPageChannel1.master 裡的 MasterPageFile 屬性,讓 ContentPage.aspx 在顯示的時候將 MasterPageTop.master 改成 MasterPageTop2.master。

... 繼續閱讀 ...

開發ASP.NET請不要使用 Environment.CurrentDirectory

我們之前有位新手工程師(現在已經不新了)曾經在 ASP.NET 中使用 Environment.CurrentDirectory ( 取得目前之工作目錄的完整路徑 ) 來存取網站內的檔案,一般來說很少有人會用 Environment.CurrentDirectory 來存取網站上的檔案路徑,我自己猜測應該是一般的 C# 書籍都是用 Console Program 來撰寫範例,所以可能是新手上路搞不清楚狀況才這樣寫,而且在 Visual Studio 的開發環境中這樣使用還真的不會出錯呢!所以才導致新人一直使用錯誤的方法開發,直到程式被部署到測試主機後才發現程式無法執行。

... 繼續閱讀 ...

.NET 3.5 Enhancements Training Kit RTM

之前在 Visual Studio 2008 推出的時候,同時也推出了一套 Visual Studio 2008 and .NET Framework 3.5 Training Kit 訓練教材,可供開發人員下載自我學習。而隨著這次 Visual Studio 2008 Service Pack 1.Net Framework 3.5 Service Pack 1 的推出,也同時推出了 .NET 3.5 Enhancements Training Kit 訓練教材,其中包含了許多新增的範例程式、簡報、實驗演練(Labs)教材等,想學習新技術的人不用在等了,趕快下載回去自修吧。

... 繼續閱讀 ...

如何強迫 .Net 應用程式輸出英文的例外訊息

因為常常需要跟國外 Blogger 交流,甚至回報某些國外 .Net 產品的 Bug 給他們,所以常常都要自行翻譯「例外訊息」( Exception Message ),不過有時後真的會翻錯。再者,若在開發 .Net 時遇到一些很少見的問題,用中文搜尋不到時,可能會想將訊息翻成英文後再搜尋一次,不過也有可能因為翻譯錯誤導致搜尋結果不夠精準。所以若能夠在除錯的時候輸出英文版的例外訊息,那該有多好阿!

... 繼續閱讀 ...

在 ASP.NET 中強迫輸出 BOM 字元的方式

我最近發現就算我的 ASP.NET 頁面是用 UTF-8 編碼(包含BOM字元)、或在頁面中設定 ResponseEncoding 為 UTF-8 編碼,最後輸出到瀏覽器的文件都一定不會有 BOM ( Byte-order mark ) 字元,這就很有可能造成 Browser 誤判網頁的編碼,我特別強調是「可能」會誤判而已,在我實際的工作經驗裡,瀏覽器在讀取沒有 BOM 字元的 UTF-8 網頁都沒出問題過,不過當我們選取【檢視 -> 原始檔】的時候,網頁內容被預設編輯器開啟的時候,編輯器就真的「很有可能」會誤判了,像我同事的 Notepad++ 在開啟網頁原始檔時,就幾乎全部變亂碼必須要手動切換到「編譯成 UTF-8 碼」才會變正常。(奇怪的是這些事總不會在我的電腦發生,不知道是不是我的電腦吃了我太多的口水所致)

... 繼續閱讀 ...

修正一個 FCKeditor.Net 2.6.3 的 Bug

我們有個網站,每次當頁面載入 FCKeditor 的時候,全公司就只有我的電腦可以正常執行,其他的開發人員都無法正確載入 FCKeditor,都會出現【'this.LinkedField.value' 是 null 或不是一個物件】的錯誤訊息(如下圖),這真的又是一件很詭異的事,且又再度證明一點,電腦其實是會挑人出問題的!(註:好幾次客戶打電話來問我問題時,電腦都會在我接起電話的當下自動恢復正常)

... 繼續閱讀 ...

在寫 ASP.NET 的時候要謹慎使用靜態(static)欄位

最近發現了一個之前開發過的網站,大約兩、三天就會發生「已經開啟一個與這個 Command 相關的 DataReader,必須先將它關閉。」的錯誤訊息,整個網站可以正常編譯,代表語法沒問題,測試的時候可以正常執行也不會發生 Exception,但只要一到了客戶那邊的主機執行個幾天就會開始出現問題,但通常多 reload 幾次網頁就會正常執行就好了,完全是一個很詭異的狀況。

... 繼續閱讀 ...