Browse by Tags

使用 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 3,733
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,139
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) 3,697
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) 13,881
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 4,840
Filed under:
ActionFilter Attribute 共用特性與狀態保存
同事報案,某個 Web API 會不定期出錯。進一步調查是近期啟動的一個新排程同步發出多個 API 呼叫,當 Web API 同時被多方呼叫,Web API 加掛用來寫 Log 的 ActionFilter Attribute 偶爾會發生 Dictionary.Add 重複加入相同鍵值的錯誤。因 Dictionary 被設成 ActionFilter Attribute Instance 的私有欄位,依我原先的理解,ActionFilter Attribute 每次呼叫時都應建立新 Instance...
Posted 16 February 2017 10:25 PMJeffrey | 4 comment(s) 5,532
Filed under:
CSHTML 匿名型別資料繫結技巧一則
情境如下, 在 ASP.NET MVC 用一小段程式顯示部門下拉清單,資料來自資料庫,因欄位較多且命名不直覺,我將由資料庫取得的集合轉成匿名型別 Select(o => new { DeptId = o.DI, DeptName = o.DN },再以 Razor 語法 @foreach (var dept in ViewBag.Depts) { <option value="@dept.DeptId">@dept.DeptName</option>...
Posted 10 January 2017 09:52 PMJeffrey | 2 comment(s) 6,680
Filed under:
ASP.NET MVC ScriptBundle Cache 原理剖析
工作上遇到幾起 ASP.NET MVC ScriptBundle 機制 在更新 JS 檔後卻讀到舊版內容的問題,沒搞清楚原理查起問題有些茫然,做功課的時間又到了。 依據 官方文件 (見 Bundle Caching 一節),@Scripts.Render("~/bundles/blah") 會被轉成 <script src="/bundles/blah?v=FVs3…ulE1" type="text/javascript"><...
Posted 23 November 2016 09:55 PMJeffrey | with no comments 4,372
Filed under:
閒聊:不想走在「最前端」, WebForm 開發者也該學的技能
就用這篇鬼故事當開場吧! 在 2016 年学 JavaScript 是一种什么样的体验? 這幾年 HTML5 火紅,前端開發技術發展如黃河氾濫一發不可收拾,開發框架百家齊嗚,眼花瞭亂不知如何下手就算了,更要命的是市場主流每兩年就轉一次風向,兩年前我才含淚從 Knockout 轉到 Angular ,現在卻眼看 React.js 及 Vue.js 可能把 Angular 的接班人 Angular 2 幹掉 Orz。不只開發框架主流變來變去,連開發工具也整套換光光。還記得兩年前的這篇 Gulp, Grunt...
【茶包射手日記】ASP.NET MVC 403.14 錯誤烏龍
手動部署 ASP.NET MVC 專案到測試台,仗著自己對 MVC 的了解,沒用 Visual Studio Publish 功能也不是整個專案全搬,而是靠肉眼人腦決定搬哪些檔案。COPY 好檔案設好 IIS,預期該連上 /Home/Index 首頁卻冒出 HTTP 403.14。 這問題以前 遇過 ,起因 Windows 2008 SP2 (非 Windows 2008 R2)的 IIS 7 不支援無副檔名路由,需使用 <modules runAllManagedModulesForAllRequests...
Posted 28 October 2016 10:08 PMJeffrey | with no comments 4,631
Filed under:
筆記:使用Facebook帳號登入ASP.NET MVC網站
前篇文章 介紹過ASP.NET MVC 5內建Google、FB、Twitter、Microsoft Account外部帳號登入支援,只需設定API Key及API Secret即可啟用,十分方便。上回整完Google帳號,繼續處理Facebook登入。 一回生二回熟,第一步當然是到 Facebook開發者網站 申請API Key。在網頁按下「新増應用程式」: 類型選「網站」: 為應用程式取個名字: 填寫「顯示名稱」、「聯絡電子郵件」及「類別」: 下一步要填寫網站URL: 基本上這樣就算設定好了...
Posted 28 August 2016 10:48 PMJeffrey | 2 comment(s) 10,427
Filed under: ,
筆記:使用Google帳號登入ASP.NET MVC網站
新版ASP.NET改採 OWIN架構 ,Middleware概念讓Request/Response處理流程變得模組化,允許抽換自由組裝,身分驗證也變得極富彈性,IIS時代ASP.NET只有匿名、Basic、Windows幾種選擇,改用OWIN後,整合Google、Facebook、Twitter、Microsoft Account… 等OAuth登入服務不再是難事,還有現成元件可用,輕輕鬆鬆實現Google、FB登入。(關於OAuth,小朱有 系列文章 介紹,包含原理與OAuth Client實作細節...
Posted 28 August 2016 12:34 AMJeffrey | 2 comment(s) 10,203
Filed under: ,
ASP.NET MVC整合RichText編輯器範例與注意事項
最近的ASP.NET MVC專案用到了RichText編輯器,允許使用者編輯包含不同字型、大小、粗細、顏色的格式化文字,其中有些需注意細節,整理筆記備忘。 網頁版RichText編譯器的選擇 不少 ,本文以 KendoEditor 為例,結果則以PostBack方式回傳。即使換用其他編輯器或改以AJAX回傳,ASP.NET MVC整合重點大同小異。 範例的MVC網站共有Index及Result兩個View,Index為編輯器頁面,Result則用來顯示結果。Controller除了Index及Result兩個Action...
更多文章 下一頁 »

搜尋

Go

<April 2018>
SunMonTueWedThuFriSat
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

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

文章典藏
其他功能

這個部落格


Syndication