邊寫邊紀錄。

第三章 建立第一個ASP.NET MVC專案
p.67
除了存取資料用的Model外,還有ViewModel,專門用來 display 用的。

p.81
Controller裡,除了ViewData可以用之外,還可以用TempData,可以用來放暫時性的資料,但是要注意的是,被用過一次以後,就消失了。
這裡的範例就是在存檔時,先把資料放到TempData裡,然後 return RedirectToAction("Result"); ,接著在 Result 方法裡去判讀 TempData[key] 存不存在,存在的話就拿來當作View的Model,View再根據這個Model來顯示。

第四章 Route
p.86
Client 對網站發 request 以後的流程,晚點補圖。


p.96
這是Route的大致流程,也很棒,晚點補圖。




p.97 ASP.NET MVC執行生命週期完整流程圖



第五章 Model
p.112
Entity Framework,要在 VS 新增項目,選 "ADO.NET實體資料模型",就可以去新增,並拉關係。
專案裡會看到的檔名是 .edmx

p.120
這裡提到一個技巧,用 VS 拉出來的資料模型可能無法變更類別的程式碼(有可能會被VS更動),所以使用了MetadataType這個Attribute,再搭配partial,去修飾原來的Model 類別。


p.126
Repository pattern
先定義一組interface,然後裡面提供 Add, Delete, Save, FindAll, GetMemberBy... 等方法,再寫一個類別去實作,主要是有利於之後的單元測試。

第六章 Controller
p.133
可以覆寫HandleUnknownAction來自訂找不到Action時的處理方式。MSDN上的範例有漏洞,可能會導致有加HttpPost的Action的View外洩。

p.135
不給執行的話,加上 NonAction attribute 或是直接宣告為 private。
預設是HttpGet,另外還有HttpPost、HttpDelete、HttpPut
ActionResult 有很多子類別:ContentResult, EmptyResult, JsonResult, RedirectResult, RedirectToRouteResult, ViewResult, PartialViewResult, FileResult, JavaScriptResult。
大致應該都可以望文生義。
FileResult如果要在Client顯示中文的話,需要加Header。
JsonResult要注意的是,預設只能以Post方式取得,這是有安全上的考量。要Get的話,得加 JsonRequestBehavior.AllowGet: return Json { new { id=1 }, JsonRequestBehavior.AllowGet );。jQuery的話,要加一個 postJSON 方法:$.postJSON = function(url, data, cb) { $.post(url, data, cb, "json"); }

More about ASP.NET MVC 2 開發實戰


arrow
arrow
    全站熱搜

    elleryq 發表在 痞客邦 留言(0) 人氣()