Browse by Tags

在 ASP.NET MVC Response.End() 不會中斷執行
同事回報了一起奇怪狀況,追查之後又學到新東西。在我的觀念裡,Response.End() 時會立即中斷執行,有時還會觸發討厭的 ThreadAbortException 。但在以下的 ASP.NET MVC 範例中,CheckAuth() 在查不到 Cookie 時會導向 /Login 並呼叫 Response.End() 結束執行,結果沒有,程式繼續往下跑,在試圖修改 Response.ContentType 時觸發 HTTP Header 送出後無法修改 ContentType 的錯誤:(修改...
Posted 24 August 2018 10:52 PMJeffrey | with no comments 2,396
Filed under:
ASP.NET Core 值得學嗎?
連發了幾篇 ASP.NET Core 文章,果不其然接到各方詢問: 「 喵的 媽呀,微軟又推新東西了?」 「WebForm 玩完了嗎?」 「我 ASP.NET MVC 還沒開始玩耶,是不是不用學了?」 先簡單答覆以上疑問: 是的, ASP.NET Core 是下一代的 ASP.NET,能跨平台執行,預期是未來的主流。它是兩年前推出的新東西沒錯,但做資訊這行一天到晚學新東西剛好而已好嗎?你要是體驗過前端框架「 放煙火式的生命週期 」,這根本不算什麼。 至於 WebForm,再戰十年或二十年應該不是問題...
ASP.NET Core 練功筆記 1
也差不多該開始玩 ASP.NET Core 了。最近剛好有個適合練功的題材,拿了 ASP.NET Core + Vue.js 上場演練,將一路上參考到的資源及瑣碎心得理成筆記備忘。 關於 ASP.NET Core,MVP John Wu 有一系列 IT 鐵人文,是新手上路很不錯的參考: [鐵人賽 Day01] ASP.NET Core 2 系列 - 從頭開始 - John Wu's Blog 如果你習慣 IDE 開發不喜歡下指令,那麼 Visual Studio 仍是開發 ASP.NET...
閒聊 - Web API 是否一定要 RESTful?
傳說 C 語言風格(C#/Java/JavaScript…)程序員依其信仰分為兩大派,自古以來不共戴天: 依我的觀點,寫 WebAPI 的程序員也分成兩派,RESTful 派跟非 REST 派。我屬於後者,是非主流的少數派。 前幾天跟同事聊到 Web API 是否一定要 RESTful,三言兩語說不清,寫篇文章梳理思緒好了。 RESTful API 是指實踐 REST Representational State Transfer 精神的 API 設計風格,其核心精神在於借用 HTTP 協定做為基礎...
小技巧 - ASP.NET MVC 限定 POST 但開放本機 GET
分享 ASP.NET MVC 私房小技巧一則。 AJAX 呼叫 ASP.NET MVC 時,基於安全考量應限定 POST 方法。(參考: 隱含殺機的GET式AJAX資料更新 - 黑暗執行緒 ) 不過在開放測試階段,開放 GET 可在瀏覽器網址列輸入 URL 測試較方便,有沒有兩全其美的方法? 於是我寫了一個 Action Attribute,實現「從 localhost 呼叫可用 GET,從正常 IP 存取只能 POST」的效果,像是這樣: HomeController 的 Test Action...
Posted 06 July 2018 11:59 PMJeffrey | 1 comment(s) 2,879
Filed under:
在 Partial View 與 View 間使用 ViewBag 傳送資料
在 ASP.NET MVC View 引用伺服器端傳來的資料,正統做法是定義 View Model 類別,Action return View(viewModelObject),在 CSHTML 宣告 @model 定義強型別並使用 Razor 語法存取 Model 變數。(延伸閱讀: mrkt 的程式學習筆記: ASP.NET MVC 的ViewModel - 基礎篇 ) 但如果是要傳遞簡單的數字或字串(像是啟用特定功能的旗標、頁面標題... 等等,建議只用於少量、單純與核心商業邏輯較無關的變數...
Posted 07 June 2018 10:01 PMJeffrey | 2 comment(s) 4,911
Filed under:
CSHTML Layout Page、Partial View 執行順序實驗
維護 ASP.NET MVC 專案遇上巢狀 Layout 引用 Partial View 的情境,無法斷定執行先後順序,想必是自己觀念不清,做了以下實驗驗證,順手分享之。 假設有 ASP.NET MVC 巢狀 Layout 並混用 Partial View 結構如下: _Layout.cshtml @{ System.Diagnostics.Debug.WriteLine("_Layout.cshtml"); } <!DOCTYPE html> <html>...
Posted 06 June 2018 10:03 PMJeffrey | 2 comment(s) 3,188
Filed under:
VS2017 無法載入 MVC4 專案
最近接連遇到兩次的問題。 首先是某個用 Visual Studio 2017 開發的專案,同事 T 從 TFS 取回最新版以 VS2017 開啟,其中卻有兩個 MVC 專案呈現截入失敗,其他還有 Class Library 及 Web Site Project 等多個專案則沒問題;改用 VS2015 開啟則能正常載入。 嘗試重新載入專案會出現以下錯誤訊息,並附上一段說明連結: SomeMVC\SomeMVC.csproj: 找不到這種專案類型的基礎應用程式。請嘗試這個連結以取得其他資訊: (其英文為...
Posted 01 June 2018 08:57 PMJeffrey | with no comments 4,007
Filed under: ,
使用 Razor 產生客製化 Email 內容
多年下來,寫程式發 Email 通知的需求做過 N 回,其中寄給客戶的通知為求美觀常需採用 HTML 格式,而客戶姓名、通知內容等要隨客戶動態改變,嚴格來說也是一種套表。過去我慣用一套自己發明的「特別註記+Replace」做法,例如: var tmpl = "<span>[$Name$]</span> 您好,您的等侯順位為<span>[$SeqNo$]</span>" ; var dict = new Dictionary<...
ASP.NET MVC 回傳 HTTP 400 Bad Request 並附加錯誤訊息
同事的專案遇到以下需求:依規格實作 WebAPI (考量開發彈性,使用 ASP.NET MVC Controller,未走 ApiController ),規格定義遇到某些狀況需抛回 HTTP 400 Bad Rquest 並以 JSON 格式回傳錯誤訊息。 一開始的寫法如下: public ActionResult BadRequestFail() { Response.SetStatus(HttpStatusCode.BadRequest); return Content( "{ ...
Posted 17 January 2018 06:32 AMJeffrey | with no comments 5,089
Filed under: ,
Request.Url.Host 偽造實驗
我有個 IIS 網站同時繫結多個 IP,想做到依據連上的伺服器 IP 授與不同權限,例如: 有些功能開放外網 IP 連入使用,某些功能限定內網及 localhost IP 才能用。設立兩個站台繫結不同 IP 及 Port 但共用同一份 ASP.NET 程式碼是一種解法,但我貪圖共用 Process 及靜態物件的便利性,因此要研究正確識別 Request 伺服器來源 IP 的方法。 舉最簡單的例子,IIS 預設繫結到所有 IP 位址("*"),而若伺服器 IP 為 172.28...
Posted 11 January 2018 09:42 PMJeffrey | with no comments 4,760
C# 小技巧 - 不必再靠 switch case 副檔名決定 ContentType 囉
由 ASP.NET 伺服器端傳回檔案內容,需指定適當的 ContentType,瀏覽器才會將其視為圖檔、HTML、CSS 或 JavaScript 處理。過去我都是土法煉鋼,取得副檔名再用 switch … case 針對已知檔案種類列舉對應 ContentType,像這樣: string contentType = "" ; switch (fileName.Split( '.' ).Last()) { case "jpg" : contentType...
ViewBag dynamic 特性導致無法使用 LINQ 語法
寫 ASP.NET MVC CSHTML 時,我很習慣用 ViewBag 將變數從 Controller 傳到 View 端,只是簡單傳遞幾個字串、數值,為此大費周章宣告 Model 型別有點殺雞用牛刀。我們都知道 ViewBag 是一個 dynamic 型別,而 dynamic 型別的屬性、方法也會被視為 dynamic,編譯階段不檢查,執行階段見真章。 不過,最近學到一件事:一旦函式參數傳入 dynamic,其傳回值也會被視為 dynamic,而此時將無法使用 Lambda 運算式 。 來看下面這個例子...
Posted 26 August 2017 11:37 AMJeffrey | 1 comment(s) 4,683
Filed under: ,
AJAX 網頁踩雷記:ASP.NET MVC 一秒變蝸牛
來看一個有趣實驗。 以下是個簡單的 ASP.NET MVC Controller,在 Index View 透過 AJAX 呼叫向 Server 讀取資料,SimuAjaxCall 則模擬 AJAX 呼叫動作,使用 Thread.Delay() 延遲指定秒數後傳回字串結果: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace...
Posted 07 June 2017 07:53 AMJeffrey | 4 comment(s) 15,648
Filed under:
【茶包射手日記】問題 JS 導致 ASP.NET MVC 所有 View 無法顯示
查出某支 JavaScript 有錯,修改後更新到網站,沒想到整個 ASP.NET MVC 網站壞光光,所有 View 都無法顯示,出現如下錯誤: '/' 應用程式中發生伺服器錯誤。 並未將物件參考設定為物件的執行個體。 描述: 在執行目前 Web 要求的過程中發生未處理的例外狀況。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。 例外狀況詳細資訊: System.NullReferenceException: 並未將物件參考設定為物件的執行個體。 原始程式錯誤: 行...
Posted 20 April 2017 06:11 AMJeffrey | with no comments 5,493
Filed under:
更多文章 下一頁 »

搜尋

Go

<December 2018>
SunMonTueWedThuFriSat
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication