目錄
概述
建立第一個項目
添加控制器
總結
本教程是個人一步一步學習的總結,希望能幫到正在進入ASP.Net MVC5方向的朋友,個人也是準備進入ASP.NET MVC5領域,雖然艱辛,但是樂此不彼。誰讓咱喜歡程式設計呢?之前接觸過ASP.NET MVC4,今天在看發現差别還是有的,不管是使用IDE建立方式,還是使用方式有些地方的确不一樣了。手上也沒有ASP.NET MVC5的教程,隻能看着英文網站,一步一步摸索了。其實我是一直想使用mvc,可事與願違啊,到目前還是使用的webform。
使用IDE:VS2013
建立項目,步驟如下,首先看看傳說中的ASP.NET MVC是個什麼樣子。其他的知識穿插在項目中講解。

建立MVC項目,你可以選擇MVC或者Empty,選擇MVC會建立一坨東西包括Bootstrap前端架構,本人機子是老爺機,非常的卡,是以我選擇了Empty,建立的速度快一點。沒辦法啊,就算老爺機也得學習啊。
選擇Empty建立的項目結構如下:
項目簡單介紹
RouteConfig.cs:路由規則配置類(記得之前的版本似乎是在Global.asax檔案中的)。
1 public class RouteConfig
2 {
3 /// <summary>
4 /// 注冊路由的方法
5 /// </summary>
6 /// <param name="routes">路由集合,既然是集合肯定能添加多個路由規則,這部分在之後會介紹。</param>
7 public static void RegisterRoutes(RouteCollection routes)
8 {
9 //忽略給定可用路由清單的指定URL路由
10 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
11 //路由映射,映射指定的URL路由并設定預設路由值
12 routes.MapRoute(
13 name: "Default",//要映射的路由的名稱。
14 url: "{controller}/{action}/{id}",//路由的 URL 模式。{控制器}/{操作}/{參數}
15 defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
16 );
17 }
18 }
那麼現在Global.cs變成什麼了呢?
1 public class MvcApplication : System.Web.HttpApplication
2 {
3 /// <summary>
4 /// 應用程式開始方法
5 /// </summary>
6 protected void Application_Start()
7 {
8 //注冊應用程式中的所有區域
9 AreaRegistration.RegisterAllAreas();
10 //注冊路由
11 RouteConfig.RegisterRoutes(RouteTable.Routes);
12 }
13 }
基礎知識
MVC的全稱為model-view-controller(模型-視圖-控制器)。MVC是一種開發應用程式的模式,這個模式已經具有了很好的架構架構,并且十分容易維護。使用MVC開發出來的應用程式一般包括以下幾塊内容:
• 控制器(Controller):控制器類處理用戶端向Web應用程式發出的請求,擷取資料,并指定傳回給用戶端,用來顯示處理結果的視圖。
• 模型(Model):模型類代表了應用程式的資料,這些資料通常具有一個資料驗證邏輯,用來使得這些資料必須符合業務邏輯。
• 視圖(View):視圖類是Web應用程式中用來生成并顯示HTML格式的伺服器端對用戶端請求的響應結果的模闆檔案。
添加一個控制器
是不是被吓着了,這麼多方式,的确很震撼。先從空控制器開始吧,以後用到其他的再慢慢介紹。
注意添加控制器名稱必須注意,控制器名稱必須以Controller結尾,要問為啥,感覺跟Attribute特性一樣,規定!新手入門級别就不探讨這個了。添加一個IndexController。
看一看項目結構有什麼變化?
是的,正如上圖紅框所示,添加一個控制器,預設會一起在視圖中建立一個名字(假如這樣命名控制器——名字+Controller)相同的檔案夾。
進入IndexController.cs
1 public class IndexController : Controller
2 {
3 //
4 // GET: /Index/
5 public ActionResult Index()
6 {
7 return View();
8 }
9 }
我們修改一下IndexController中的代碼,如下:
1 public class IndexController : Controller
2 {
3 //
4 // GET: /Index/
5 public string Index()
6 {
7 return "This is my <b>default</b> action...";
8 }
9 //
10 // GET: /HelloWorld/Welcome/
11
12 public string Welcome()
13 {
14 return "This is the Welcome action method...";
15 }
16 }
在例子中,控制器方法傳回一個html字元串。讓我們在浏覽器中通路控制器IndexController的第一個方法Index(),直接按F5運作。
http://localhost:4585,然後在該位址後面拼上/Index,http://localhost:4585/Index,在浏覽器中的頁面看起來就像下圖所示的一樣。在上述方法中,代碼直接傳回了一個字元串。
ASP.NET MVC根據輸入的URL調用不同的控制器類(或者其中的不同的方法)。ASP.NET MVC預設URL路由邏輯采用如下的格式來确定什麼樣的代碼被調用:
/[Controller]/[ActionName]/[Parameters]
你可以在app_start / routeconfig.cs路由設定中設定檔案格式。
1 public class RouteConfig
2 {
3 /// <summary>
4 /// 注冊路由的方法
5 /// </summary>
6 /// <param name="routes">路由集合,既然是集合肯定能添加多個路由規則,這部分在之後會介紹。</param>
7 public static void RegisterRoutes(RouteCollection routes)
8 {
9 //忽略給定可用路由清單的指定URL路由
10 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
11 //路由映射,映射指定的URL路由并設定預設路由值
12 routes.MapRoute(
13 name: "Default",//要映射的路由的名稱。
14 url: "{controller}/{action}/{id}",//路由的 URL 模式。{控制器}/{操作}/{參數}
15 defaults: new { controller = "Index", action = "Index", id = UrlParameter.Optional }
16 );
17 }
18 }
當你運作應用程式,預設會執行“Index”控制器中的“Index”方法。如果通路Index控制器下的Welcome方法,可以這樣修改,
1 public class RouteConfig
2 {
3 /// <summary>
4 /// 注冊路由的方法
5 /// </summary>
6 /// <param name="routes">路由集合,既然是集合肯定能添加多個路由規則,這部分在之後會介紹。</param>
7 public static void RegisterRoutes(RouteCollection routes)
8 {
9 //忽略給定可用路由清單的指定URL路由
10 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
11 //路由映射,映射指定的URL路由并設定預設路由值
12 routes.MapRoute(
13 name: "Default",//要映射的路由的名稱。
14 url: "{controller}/{action}/{id}",//路由的 URL 模式。{控制器}/{操作}/{參數}
15 defaults: new { controller = "Index", action = "Welcome", id = UrlParameter.Optional }
16 );
17 }
18 }
如果直接按F5運作應用程式,會得到下圖所示的結果:
現在,讓我們修改一下welcome方法,給他兩個參數,string和int類型的參數。
1 public string Welcome(string name = "Wolfy", int age = 23)
2 {
3 return HttpUtility.HtmlEncode("您好" + name + ",你今年是不是" + age.ToString()+"?");
4 }
給上述代碼傳回值進行html編碼後傳回。然後F5運作。
那麼現在通過url修改參數的值,url:http://localhost:4585/Index/Welcome?name=zhangsan&age=34
有沒有辦法讓url的參數按照我們想要的格式輸入呢?把法是有的,可以通過添加路由規則:
如果參數以這種格式輸入http://localhost:4585/Index/Welcome/lisi/30,
總結
這裡介紹了使用控制器中的方法直接傳回html,通常這并不是我們想要的。相反,我們通常會使用一個單獨的視圖模闆檔案來生成HTML響應。在文章穿插中也簡單介紹了路由的使用。目前,先不要糾結這些東西,先知道怎麼用,之後會深入介紹每一個知識點。
-
部落格位址:http://www.cnblogs.com/wolf-sun/
部落格版權:如果文中有不妥或者錯誤的地方還望高手的你指出,以免誤人子弟。如果覺得本文對你有所幫助不如【推薦】一下!如果你有更好的建議,不如留言一起讨論,共同進步!
再次感謝您耐心的讀完本篇文章。