在寫 HttpHandler 或 Generic Handler 的時候,如果要使用 Session 物件的話,在 Visual Studio 中你可以很輕易的透過 Intellisense 使用 context. 時取得 Session 物件,但是你會發現這個物件會傳的值永遠都是 null,所以你是無法取得或設定 Session 資料的,如果要在 HttpHandler 中使用 Session 的話,其 HttpHandler 的類別一定要繼承 System.Web.SessionState.IRequiresSessionState 介面(讓 context.Session 可讀可寫)或 System.Web.SessionState.IReadOnlySessionState 介面(讓 context.Session 唯讀),繼承這個介面不需要實做任何方法(Methods),只要單純的將介面繼承上去即可。
... 繼續閱讀 ...
前天替一個網友解決了一個 Encoding 混亂的問題:ASP.net 傳遞中文至Web Service 亂碼問題,像這種這個問題最常出現在「非 Unicode 的系統」裡,像這個案例就是他們的 Web Service 是用 PHP + NuSOAP 開發的,因為預設就是用 ISO-8859-1 的字集做資料的編碼與傳輸,所以資料在同樣的字集傳輸下,在非原生(Non-Native)支援 Unicode 的程式語言下很自然的不會發現問題,但是一到了 .NET 就不一樣了,.NET 是一個打從骨子裡支援 Unicode 的架構,所以對 Encoding 是很敏感的。
... 繼續閱讀 ...
我們在套版的時候,常常會遇到那種「文字寬度固定」的版型,我們通常的作法都是用 Substring 將長篇的文字擷取一部份起來顯示,但問題是「中文字的寬度常常無法估計」,但客戶又要求寬度一定要跟設計師設計的一模一樣,文字太多的時候不能超出版面,以免破壞美美的版面。
... 繼續閱讀 ...
剛寫 .NET 的人最討厭的就是分成 VB.NET 與 C#,像是學 ASP 起家的人想要看懂 C# 就會感覺有點吃力,雖然我個人認為語法是蠻像的,但是對初學者來說就是覺得「很不一樣」。
... 繼續閱讀 ...
我們有時後會在 Server 端動態的產生一個檔案,然後讓使用者下載,你也有可能希望使用者下載完該檔的時候可以直接從 Server 端直接刪除,不過這個動作無法在一個 HTTP Request/Response 循環中完成,因為檔案正在傳送回用戶端時並無法刪除該檔!
... 繼續閱讀 ...
之前曾經有一次到要將郵件主旨(Subject)解碼的經驗,但主旨卻用 Quoted Printable 編碼過了,所以上網找了個 Quoted Printable Encoding & Decoding 的範例程式來看,但下載回來卻不能正常解碼(Decode),經我一翻修改後才可以正常解碼。
... 繼續閱讀 ...
如果你要匯出資料成檔案,作法通常有很多種,之前曾經有篇文章【如何用 C# 將資料匯出到 Excel】介紹一些匯出的方式,但今天這個作法應該是最簡單的,也就是透過 GridView 控制項所輸出的 HTML 就可以讓 Excel 開啟了。
... 繼續閱讀 ...
我們在開發網頁應用程式,時常需要去解析網址(Request.Url)的每個片段,進行一些判斷。例如說 "http://localhost:1897/News/Press/Content.aspx/123?id=1#toc",我們想要取得網址裡第一層目錄的名字(News)用以判斷不同的頁面標題(Page Title)。
... 繼續閱讀 ...
我們在發送 HTML 郵件時,通常會將網頁中的圖片都全部上傳到網站,然後在 E-Mail 內的所有圖片就直接設定絕對網址(Absolute URL)就可以了,但這有個缺點,就是當使用者「看信」的時候如果沒有上網,將會無法看到完整的郵件內容,因為沒網路無法下載圖片。
... 繼續閱讀 ...