[Asp.net MVC]Asp.net MVC5系列——第一個項目


目錄

概述

創建第一個項目

添加控制器

總結

概述

本教程是個人一步一步學習的總結,希望能幫到正在進入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響應。在文章穿插中也簡單介紹了路由的使用。目前,先不要糾結這些東西,先知道怎么用,之后會深入介紹每一個知識點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM