MVC5 + EF6 入門完整教程

MVC5 + EF6 入門完整教程
原文:MVC5 + EF6 入門完整教程

第0課 從0開始

ASP.NET MVC開發模式和傳統的WebForm開發模式相比,增加了很多"約定"。

直接講這些 "約定" 會讓人困惑,而且東西太多容易忘記。

和微軟官方教程不同,筆者盡量不用腳手架,從空白框架開始,一步一步添加功能,每次添加的東西剛好夠用,讓大家能真正能用起來,理解每一個過程。

文章提綱

  • 概述
  • 核心概念介紹
  • 從空白開始,建立一個基本框架詳細步驟

概述

  1. 本系列文章及文章中的例子主要基于微軟官方文檔
  2. 使用工具 : VS2013 + MS SQL 2012
  3. 開始主要講解MVC + EF搭配使用,后續同樣也會提供MVC + ADO.NET的實現方案

核心概念介紹

MVC,Model – View – Controller 的簡寫

Model 封裝業務邏輯相關的數據及對數據的處理方法

View 向用戶提供交互界面

Controller 負責控制Model和View

看下面這張圖。目前只要理解這一個概念就可以了,下面就開始建一個空框架,從做中學。

?

從空白開始,建立一個基本框架詳細步驟

  1. 新建項目

?

?

NOTE:模板要選Empty,如果直接選MVC會產生多余代碼。

NOTE:上圖方框處正好對應于M, V, C

到此為止,就建立了一個最基本的MVC解決方案,基本是空的。

我們簡單介紹下其中的RouteConfig.cs文件

打開Global.asax, 注意到在程序啟動的時候注冊了路由規則,如下方框處。

下面我們就看下具體的路由規則。打開RouteConfig.cs文件

注意到里面有個靜態方法,這就是映射路由的控制,這個方法定義了路由規則。

其中:url: "{controller}/{action}/{id}"定義了URL的格式。

后續會結合實際的URL地址來講解。

?

  1. 添加一個示例

先不管Model, 我們先創建Controller和View

  1. 添加Controller

右鍵Controllers文件夾,按圖示添加。

控制器必須以Controller結尾(這是ASP.NET MVC的一個約定)。

后續文章會講用戶登錄的例子,所以這里先建一個AccountController.

添加后會發現多了下圖方框處的類和文件夾。

我們打開新建的AccountController.cs看下,自動生成了一個方法

public ActionResult Index()

{

return View();

}

我們稱這個Index為一個Action,返回類型為ActionResult.

可以看到,這個Action返回了一個View, 我們現在來建立這個View

  1. 添加View

添加View有兩種方法,一種是直接在Views文件夾下添加(右鍵ViewsàAccount文件夾)

另外一種是通過Controller中的Action來添加。這次我們采用后一種方法。

打開AccountController, 右鍵Index方法,按圖示添加。

這樣就添加了一個和特定的Controller和Action(這里指AccountController和Index)相對應的View(ViewsàAccountàIndex.cshtml)

?

這個View就是最終顯示的前端頁面,我們在Body里面添加一行字。

右鍵Index.cshtml,在瀏覽器中查看可以看到熟悉的HTML界面了。

注意瀏覽器中的地址 xx/Account/Index

這個地址與開頭的路由規則(url: "{controller}/{action}/{id}"就對應了起來,應該很容易理解吧。

?

典型的一個執行過程。

  1. 網址路由比對
  2. 如成功,執行相應的Controller與Action
  3. 執行相應的View并返回結果

記住這個過程。后面的過程都會在這個簡單的過程中進行擴展。

?

總結

MVC比之前的WebForm開發方式做了很大改變,分離更徹底。

本次文章主要是讓大家建立ASP.NET MVC的基本觀念。

下篇文章主要介紹View的UI設計,介紹一些重點的HtmlHelper, 從前端開始容易看到效果。

后續所有的文章都會以這個示例進行擴展,有問題歡迎大家評論:)

posted on 2014-12-15 12:59 NET未來之路 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/lonelyxmas/p/4164605.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376404.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376404.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376404.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

160 - 31 cracking4all.2

環境 Windows xp sp3 工具 exeinfope ollydbg 查殼 無殼VB程序 測試 輸入1234567 OD載入字符串搜素,往上翻就看到這里,我截取部分片段: 00402C26 . 8D55 98 lea edx,dword ptr ss:[ebp-0x68] ; 取serial長度…

stm32的DFU使用方法

stm32的dfu看上去是個很高級的東西,似乎可以通過USB給內部flash、外部spi flash、外部nor等東西刷寫數據、把數據讀出來,但是用了一下感覺確實有點麻煩。 先不管原理是怎樣的,使用方法是這樣: 1、先下載這個Dfuse,然后…

160 - 32 genocide1

環境 Windows xp sp3 工具 upx exeinfope ollydbg 查殼 發現是upx殼,手脫的話會不干凈,影響OD分析。 所以就直接用 upx -d 脫了 手脫: upx -d: 用upx -d 脫的版本進行分析。 第一次運行時顯示這個: 缺少Reg.dat…

vector function trmplate

/*vectorfunction templateprogrammer:qpz */ #include <iostream> #include <vector> #define MAX 10 using namespace std; class Myclass{ private:vector <int> vel;//可均分的動態數組 public:void Add(int x){vel.push_back(x);}void print(); }; void…

軟件工程個人項目11061180王宇杰

&#xff08;1&#xff09;我完全不知道要花費多少時間&#xff0c;因為從來沒有進行過類似的項目&#xff0c;涉及的很多問題我以前也根本不會。簡單的估計一下&#xff0c;這至少是15小時的工作量。 &#xff08;2&#xff09;前期的準備工作很耗時間&#xff0c;因為一開始根…

160 - 33 Cruehead.1

環境 windows xp sp3 工具 exeinfo pe ollydbg 查殼 無殼的匯編程序&#xff08;OD載入的出來的&#xff09; 測試 當name輸入為數字時&#xff0c;會彈出兩次錯誤框。 OD載入搜字符串&#xff0c;發現有兩個地方&#xff1a; 0040134D /$ 6A 30 push 0x…

mac osx 10.10 pip 安裝問題

在mac osx 升級到 10.10(Yosemite)以后&#xff0c;用pip以及easy_install 安裝python包的時候&#xff0c;如果包需要編譯&#xff0c;就會編譯失敗&#xff0c;錯誤如下&#xff1a; build/temp.macosx-10.10-x86_64-2.7/greenlet.o -o build/lib.macosx-10.10-x86_64-2.7/gr…

英文系統上網頁內容亂碼的解決

今天隨便寫了一段html 代碼示例&#xff0c;代碼如下&#xff1a; <html lang"zh-cn"> <head> </head> <body> <h1>HTML 教程目錄</h1> <ul> <li><a href"#C1">第一章</a></li> <li…

160 - 34 Cruehead.3

環境 windows xp sp3 工具 1.exeinfo pe 2.ollydbg 3.WinHex 查殼 和上一個一樣&#xff0c;OD載入判斷出 測試 運行后發現是沒有任何提示&#xff0c;而且沒有輸入serial的窗口&#xff0c;通過任務管理器可以看出程序的名稱寫有“Uncracked”&#xff0c;可以猜測…

sed awk tr等文本處理命令

指定行范圍替換&#xff1a; sed -i "520,950s/\(.*\)\(HOST_CMD_.*\)\(,\)/\1{ \2, \"\2\" },/g" hostCmdMacro.h linux shell sed命令與轉義字符 A“2013/06/09“ sed “s#hello#$A#" sed 指定行范圍匹配 刪除文本中的重復行(sortuniq/awk/sed) 263…

160 - 35 cupofcoffe.1

環境 Windows xp sp3 工具 1.exeinfo PE 2.ollydbg 查殼 OD載入后可以看出是VB程序 測試 輸入&#xff1a;12345678 顯示的內容發生了改變&#xff0c;也不影響查找字符串。 004FEC14 > \8B4D E8 mov ecx,dword ptr ss:[ebp-0x18] 004FEC17 . 51 …

centos7 安裝mysql

http://my.oschina.net/u/919612/blog/310533 測試可用 隨后又想到了&#xff0c;做個iso鏡像&#xff0c;然后掛載在CDrom上&#xff0c;然后安裝JDK成功&#xff0c;但是mysql安裝失敗&#xff0c;可能由于只從官網上下載了server&#xff0c;而沒有解決依賴關系。 最后&…

ecshop后臺增加模板頁的方法

CShop的動態模板機制是一個非常靈活的系統,管理員可以在后臺根據自己的要求調整模板模塊的顯示位置。本文詳細講解了如何修改ECSHOP內部結構使得用戶可以添加自己的模板頁從而方便靈活的使用系統自帶的模板系統和廣告位系統。 如下圖所示 可以看到ECShop支持設置的模板一共如上…

160 - 36 cupofcoffe.2

環境 Winows xp sp3 工具 1.exeinfo PE 2.ollydbg 查殼 OD載入后看出是VB程序 測試 輸入&#xff1a;12345678 繼續OD搜字符串&#xff1a; 00521688 . 68 60054500 push cupofcof.00450560 ; UNICODE ".........." 0052168D …

使用VS2010 + VirtualDDK 調試驅動

總的說來比 WINDBG要簡單的多 可以看到詳細的調試內容 但是好像不知道怎么弄成一般的工程 待定今天玩了一下 感覺還是有點麻煩 網站&#xff1a; http://techird.blog.163.com/blog/static/1215640362011112385241568/ 轉載于:https://www.cnblogs.com/zcc1414/p/3982457.html…

160 - 37 CyberBlade.1

環境 Windows xp sp3 工具 1.exeinfo PE 2.ollydbg 查殼 OD載入是VB程序。 測試 OD載入直接搜字符串。 這個是當輸入為空時會彈出消息框告訴你要輸入9個字符。 0040E005 > \8B4D E4 mov ecx,dword ptr ss:[ebp-0x1C] 0040E008 . 51 push…

恢復回收站里一篇文章 --我的實習生涯

今天想恢復我回收站里的一篇日志竟然沒這功能&#xff0c;無奈只好ctrlv出來了。半年前的文章&#xff0c;現在已經就業了&#xff0c;工作挺開心的。。。原文如下: 今天是年前的最后一個周6&#xff0c;公司的SVN掉了&#xff0c;我就賣賣呆在CSDN上瞎轉轉&#xff0c;也寫寫…

Score Inflation USACO 3.1

完全背包足以,參照完全背包最優解就過了 /*ID: hubiao cavePROG: inflateLANG: C*/#include<iostream>#include<fstream> #include<cstring> #include<string>using namespace std;int main(){ifstream fin("inflate.in");ofstream fout(&qu…

160 - 38 CyberBlade.2

環境 Windows xp sp3 工具 1.VBExplorer 2.ollydbg 查殼 OD載入往上翻可以看出是vb程序&#xff0c;看到 00401042 .- FF25 60104100 jmp dword ptr ds:[<&MSVBVM50.MethCallEngine>] ; MSVBVM50.MethCallEngine 可以知道是p-code的了 測試…

160 - 39 damn

環境 Windows xp sp3 工具 1.exeinfo PE 2.ollydbg 查殼 OD加載就知道有殼了&#xff0c;可以esp定律直接脫掉 exeinfoPE查殼&#xff1a; 測試 點擊LOCKED圖片會彈出消息框&#xff0c;Register注冊按鈕無法點擊&#xff01; 猜測Register按鈕會在輸入正確的nam…