ASP.NET MVC4 亂七八糟羅列
一、ASP.NET MVC概述
1、什麼是ASP.NET MVC?
ASP.NET MVC是微軟官方提供的MVC模式編寫ASP.NET Web應用程式的一個框架。
是微軟繼ASP.NET WebForm後的又一種開發方式,而非替代方式。
2、官方網站和原始碼網站?
原始碼網站:http://aspnet.codeplex.com/wikipage?title=MVC
3、ASP.NET MVC的特點?
1)、分離任務
2)、可擴充套件
3)、強大的URL重寫(路由)機制
4)、相容ASP.NET現有的技術
5)、開源
4、ASP.NET MVC的優點?
1)、通過把專案分為model、view和controller,使得複雜專案更加容易維護。
2)、沒有使用viewstate和伺服器表單控制元件,可以更方便的控制應用程式的行為。
3)、應用程式通過controller來控制程式請求,可以提供豐富的url重寫。
4)、支援測試驅動開發,英文全稱Test-Driven Development,簡稱TDD,是一種不同於傳統軟體開發流程的新型的開發方法。它要求在編寫某個功能的程式碼之前先編寫測試程式碼,然後只編寫使測試通過的功能程式碼,通過測試來推動整個開發的進行。這有助於編寫簡潔可用和高質量的程式碼,並加速開發過程。
5)、在團隊模式下表現更加出眾。
5、為什麼我們需要ASP.NET MVC?
1)、關注點分離
2)、高擴充套件性
3)、更好的可測試性
4)、更好的URL重寫
5)、更好的效能
6)、更加靈活的HTML程式碼控制
...
6、Razor檢視引擎?
Razor檢視引擎是對以程式碼為焦點的方法實現,其特點如下:
1)、簡潔、富於表現、流暢,儘量減少編寫一個檢視模板所需要敲入的字元數,實現快速流暢的程式設計工作。不必為了明確標記出服務模組的開始和結束而中斷程式設計,Razor解析器能從你的程式碼中自動推斷出來。
2)、易於學習,熟悉現有的程式語言和HTML技能就能快速學會。
3)、可以在任何文字編輯器中工作。
4)、VS IDE對其增加了智慧提示。
5)、支援單元測試。
7、ASP.NET MVC請求處理過程?
8、ASP.NET MVC3與MVC4 知識點?
9、ASP.NET MVC與Web Form區別?
二、ASP.NET MVC程式設計要點
1、@Html.DisplayNameFor(mode=>model.Name),預設會直接輸出屬性名稱,如果屬性名稱想要顯示中文,可在類屬性定義一個System.ComponentModel下DisplayName屬性,如:
[DisplayName(“名稱”)]
public string Name {get;set;}
使用Razor語法輸出屬性,預設所有資料都會使用HTML編碼(HtmlEncode)輸出,這是出於程式安全考慮,可避免網頁遭受跨網站指令碼攻擊(Cross-Site ScriptingAttach)。
2、@model IEnumerable<名稱空間.類名>
3、@{ ViewBag.Title=”頁面標題”;}
4、@Html.ActionLink(“Create New”,”Create”)
5、@Html.ActionLink(“Edit”,”Edit”,new{id=item.Id})
用來輸出超連結,第一個引數是連結顯示文字,第二個引數是連結的目的Action名稱,第三個引數代表路由引數id。這樣MVC在輸出超連結時,會加上要傳給下一頁的路由引數,MVC知道傳入{controller}與{action}路由引數外,還給予{id}路由值。
Controller裡有兩個同名的方法,一個給HTTP GET方法用的,另一個是給HTTP POST方法用的。有HttpPost屬性的會告知MVC框架此動作只會接收HTTP POST過來的資訊,這個屬性稱為動作過濾器(Action Filter)或者動作選擇器(Action Selector)。
// GET: /Home/Create
public ActionResultCreate()
{
return View();
}
// POST: /Home/Create
[HttpPost]
public ActionResultCreate(Collectorcollector)
{
if (ModelState.IsValid)
{
db.Collectors.Add(collector);
db.SaveChanges();
returnRedirectToAction("Index");
}
returnView(collector);
}
6、Html.BeginForm()方法,該輔助方法將會輸出<form>標籤,而且必須以using包起來,如此便可在using程式程式碼最後退出後,讓MVC補上</form>標籤。
@using (Html.BeginForm()) {}
@Html.ValidationSummary(true)用來顯示當表單域發生驗證失敗時,顯示的錯誤訊息。
@Html.LabelFor(model=>model.Name)用來顯示特定欄位的顯示名稱,會輸出包含<label>標籤的域名,它與@Html.DisplayNameFor(model=>model.Name)的區別如下圖所示:
@Html.EditorFor用於輸出表單域
@Html.ValidationMessageFor用於顯示欄位驗證的錯誤訊息。
在Model類中,需要必填屬性上加一個System.ComponentModel.DataAnnotations名稱空間下的Required屬性,如下所示:
[Required]
public string Name {get;set;}
這是MVC引入了一種Unobtrusive的JavaScript開發風格。
跳轉Action,當前Action名為Create,語法如下:
return RedirectToAction(“Index”);
ModelState.IsValid用來判斷在模型(Model)的驗證狀態是否有效,如果驗證都沒有問題,就可以利用Entity Framework標準的方法將資料寫入資料庫。
@Html.HiddenFor(model=>model.ID),該輔助方法主要用來生成HTML窗體的隱藏域。
路由Routing---網址路由,主要有2個目的:
1)、比對通過瀏覽器傳過來的HTTP請求。
2)、響應適當的網址給客戶端瀏覽器。
客戶端請求->URI Routing->Route->RouteHandler->HttpHandler
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
所有*.axd結尾的網址通常都代表著其中一個HttpHandler,如在ASP.NET WebForm中常用的WebResource.axd就是其中一個常見的HttpHandler。為了不讓MVC把這些*.axd的HttpHandler視為MVC執行起來,所以必須新增這條IgnoreRoute規則,將其排除在MVC執行生命週期之外。
相關文章
- 亂七八糟的java static知識(建議不要看)Java
- 【Bioinfo Blog 014】【Shell】——亂七八糟各種各樣的命令記錄
- 對亂糟糟的日誌說再見
- 電腦自動安裝亂七八糟的軟體怎麼辦 win10怎麼禁止自動安裝軟體Win10
- to debug asp.net mvc4ASP.NETMVC
- 寫了10年JAVA程式碼,為何還是給人一種亂糟糟的感覺?Java
- ASP.NET MVC4 入門簡介ASP.NETMVC
- Asp.Net MVC4 系列--基礎篇(1)ASP.NETMVC
- Asp.Net MVC4系列---基礎篇(5)ASP.NETMVC
- Asp.Net MVC4系列---基礎篇(4)ASP.NETMVC
- Asp.Net MVC4 + Oracle + EasyUI 學習 序章ASP.NETMVCOracleUI
- win10電腦自動安裝亂七八糟的軟體怎麼徹底刪除 win10怎麼防止自動安裝彈窗和垃圾廣告Win10
- Asp.Net MVC4系列--進階篇之AJAXASP.NETMVC
- Asp.Net MVC4 系列--進階篇之ViewASP.NETMVCView
- Using NInject Do DI(3) In Asp.net MVC4ASP.NETMVC
- Asp.Net MVC4 系列--進階篇之Model(1)ASP.NETMVC
- Asp.Net MVC4 系列--進階篇之Model(2)ASP.NETMVC
- Asp.Net MVC4 系列-- 進階篇之路由(1)ASP.NETMVC路由
- Asp.Net MVC4 系列--進階篇之路由 (2)ASP.NETMVC路由
- Asp.Net MVC4系列--進階篇之Helper(1)ASP.NETMVC
- Asp.Net MVC4 系列--進階篇之Helper(2)ASP.NETMVC
- ASP.NET MVC4 捆綁(Bundle)技術下的 JavaScriptASP.NETMVCJavaScript
- ASP.NET MVC4中呼叫WEB API的四個方法ASP.NETMVCWebAPI
- Asp.Net MVC4 + Oracle + EasyUI 學習 第二章ASP.NETMVCOracleUI
- iOS小知識點羅列iOS
- 打亂陣列陣列
- Asp.Net MVC4 系列--進階篇之Controller(2)ASP.NETMVCController
- Asp.Net MVC4 + Oracle + EasyUI 學習 第一章ASP.NETMVCOracleUI
- ASP.NET MVC4中用 BundleCollection使用問題手記ASP.NETMVC
- JS 陣列亂序JS陣列
- 亂談遊戲劇本之《三體-羅輯傳》角色設定遊戲
- Hadoop 工具集的簡單羅列 [整理]Hadoop
- JavaScript 陣列順序打亂JavaScript陣列
- js陣列排序和打亂JS陣列排序
- 驗證字串格式的正規表示式羅列字串
- 網路層的七七八八
- 媒體查詢中常用的媒體型別羅列型別
- LeetCode Shuffle an Array(打亂陣列)LeetCode陣列