mvc基礎
MVC的基本概念
1:MVC 分別是 Model—View-Controller
2: MVC就是將應用程式劃分為3大元件:模型、檢視、控制器
3:JAVA裡面的STRUTS2也是一種MVC模型,因此MVC不是ASP.NET所特有的
4:ASP.NET MVC從2008年釋出1.0版本,2014年釋出了MVC 5.0
MVC之間相互的關係
1:在控制器中可以直接呼叫檢視和模型
2:在檢視當中可以直接呼叫模型
3:在模型中不可以呼叫檢視
4:模型能夠限定檢視中使用的資料,但檢視中使用的模型應該由控制器控制
5:在檢視中可以呼叫控制器(通過檢視中點選連結的方式或者檢視中的表單提交)
MVC與Web Form 比較
二者都是基於ASP.NET Web框架構建的開發模型,所以ASP.NET平臺中的一些功能可以兩者通用。
Webform的Url地址是基於檔案系統的,MVC則是基於Action(行為)
ASP.NET MVC優點
1:關注點分離
2:易於測試
3:易於維護
ASP.NET MVC缺點:(相對於Web Form而言)
開發成本更高,主要是一個時間上的成本
App_Data:這個目錄一般用來儲存資料
App_Start用來存放各種配置檔案的
Content:這個目錄建議存放資原始檔,比如css,js,圖片
Models:這個目錄存放你的業務實體,資料訪問層程式碼的類
Controllers:這個目錄是建議將Controller類都放到這裡來
Views:在預設情況下,所有的view(檢視)檔案都必須放到這個目錄下邊,每一個Controller對應一個子目錄,而且子目錄的名稱必須以Controller 的命名一樣,
例如:HomeController那它對應的目錄就必須叫Home
ASP.NET MVC中的約定
1:所有控制器必須放到Controllers 資料夾下面
2:控制器名稱必須以Controller 結尾
3:所有的控制器類都應該繼承自Controller 類(本質上就是要繼承IController 介面)
4:當url 訪問的時候如果沒有找到給定名稱的路徑,那麼它會到Views 下面所有資料夾去查詢相同action 名稱的檢視檔案
5:在控制器中的public 方法被稱為Action (行為)
6:控制器下面的action 如果不想被url 訪問到,那麼有兩種方式:第一種:改變訪問級別(只要不是public 都不能被訪問),第二種給方法加標記:[NonAction]
7:在Action 中return view(), 預設返回和Action 名稱一樣的檢視檔案
8: ofollow,noindex" target="_blank"> http://localhost:2213/Login/Index/1 數值1 會自動對映到action 中的引數id 中
9:在Global.asax 全域性應用程式類中註冊了預設路由(名稱為 Default),預設路由指定了Controller 預設為Home, Action 為Index ,引數id 為可選引數
Razor檢視基本語法:
Controller與view 之間的資料傳遞
ViewBag:是一個動態型別的屬性,在mvc3.0 中才加入了viewbag 屬性
動態型別:dynamic,就是可以事先不為其定義屬性,通過直接給屬性賦值的方式就可以隨時為它新增新的屬性