[.net 面向對象程序設計深入](6).NET MVC 6 —— 模型、視圖、控制器、路由等的基本操作
1. 使用Visual Studio 2015創建Web App
(1)文件>新建>項目,選擇Web>ASP.NET Web 應用程序
(2)在新項目MyFirstWebApp對話框中,選擇ASP.NET 5模板>Web Application
由於是RC版,這里的”添加單元測試“暫時不能選,上面的WebForms MVC WebAPI將合並,前面一節介紹過了,因此也不需要再選。點確定,完成一個MVC6項目創建。
(3)運行項目
F5在調試模式下運行,或 Ctrl+F5非運行模式下運行
小技巧:啟動應用程序 Ctrl+F5(非調試模式)允許您更改代碼,文件保存,刷新瀏覽器,查看代碼的變化。很多開發者喜歡使用非調試模式來快速啟動應用程序並查看變化。
默認項目是一個響應式的頁面,當瀏覽器窗口縮小或在小屏幕設備上打開時,可以看到導航顯示,如下:
2.項目結構
我們先看一下MVC6和MVC5的項目結構差異:
下面是MVC5項目結構
下面是MVC6項目結構
可以,看到和MVC5相比,項目結構差異比較大
(1)項目文件變成了xproj(MVC5項目文件是csproj)
(2)程序配置文件變為config.json(MVC5則是web.config)
(3)增加了project.json 主要用於項目配置,負責程序集、項目部署設置,部分功能類似於MVC5的package.config.
(4)package.json 這個文件在MVC6中是NPM的配置文件,基於Nodejs的包管理器。
(5)gulpfile.js 是gulp配置文件,gulp是基於Nodejs的Javascript任務管理器,在ASP.NET 5中主要管理NPM和Bower中的內容。
(6)Stratup.cs 程序啟動入口,類似於原來的Global.asax
(7)Project_Readme.html 項目說明文件,沒什么具體作用。
(8)wwwroot 靜太資源文件(如css,images,js等)的存放目錄
(9)Dependencies Bower和NPM的依賴管理包。
(10)References 程序集引用,和以前類似,但現在有版本區分(如ASP.NET 5.0 和ASP.NET Core 5.0)
想深入了解MVC6項目結構的朋友,可以參考文章:http://www.cnblogs.com/TomXu/p/4496407.html
3.添加控制器(Controller)
在項目文件夾Controllers右擊,選添加>新建項
在打開的對話框中,選擇MVC控制器類,取名HelloWorldController.cs
我們打開剛才創建的控制器HelloWorldController.cs更改為如下:

using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNet.Mvc; // For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860 namespace MyFirstWebApp.Controllers { public class HelloWorldController : Controller { // GET: /HelloWorld/ public string Index() { return "這是我的默認動作..."; } // // GET: /HelloWorld/Welcome/ public string Welcome() { return "我是一個歡迎方法..."; } } }
讓上面的方法返回一個字符串,F5運行,然在地址后面加上helloworld,刷新一下瀏覽器,效果如下:
我們打開Startup.cs文件,看一下路由
先找到如下代碼:
路由設置的是默認 控制器=Home,方法默認為 Index 參數默認為 id
路由設置格式為 :/[Controller]/[ActionName]/[Parameters]
我們上面指定的控制器,則打開默認的方法Index,如果我們指定方法,運行結果如下:
接着我們看一下參數:
增加如下方法到HelloWorldController.cs
public string Welcome2(string name, int ID = 1) { return HtmlEncoder.Default.HtmlEncode( "hello,name:" + name + ",id:" + ID); }
注意:上面使用的代碼htmlencoder.default.htmlencode保護應用程序免受惡意輸入(如JavaScript)。
ID有一個默認值,我們傳入參數ID時,默認顯示1
傳入兩個參數:
4.添加視圖(View)
(1)先在項目的View目錄上創建一個跟控制器同名的文件夾 HelloWorld
比如:視圖名為HelloWorld,則對應的控制器名為:HelloWorldController
(2)在視圖文件夾HelloWorld中創建視圖名為:ViewShow.cshtml,
替換視圖文件如下:
@{
ViewData["Title"] = "Index"; } <h2>Index</h2> <p>Hello from our View Template!</p>
並在HelloWorldController,添加同名方法,代碼如下:
public IActionResult ViewShow() { return View(); }
然后運行如下圖所示地址:
控制器方法View() 為返回視圖
5.添加模型(Modle)
模型添加實際是添加一個類文件,這里只是簡單創建一個實體,后面會完整介紹
右擊項目文件夾Models,添加一個類文件,名為:Movie.cs
內容如下:
public class Movie { public int ID { get; set; } public string Title { get; set; } public DateTime ReleaseDate { get; set; } public string Genre { get; set; } public decimal Price { get; set; } }
到這里一個模型創建完成。
6.總結:
本篇內容非常容易理解,介紹了MVC6基本的控制器、視圖、模型的創建及最簡單的路由設置,雖然基礎,但這些是我們學習MVC的基礎,后面有機會繼續再介紹MVC的應用。
7.完整源代碼下載
Git地址:https://github.com/yubinfeng/BlogExamples
==============================================================================================
<如果對你有幫助,記得點一下推薦哦,如有有不明白或錯誤之處,請多交流>
<對本系列文章閱讀有困難的朋友,請先看 《.net 面向對象編程基礎》 和 《.net 面向對象程序設計進階》 >
<轉載聲明:技術需要共享精神,歡迎轉載本博客中的文章,但請注明版權及URL>
==============================================================================================