ASP.NET MVC 第一章 我们的第一个MVC例子
好久、好久沒有講博客了,之前都忘記有這個技術博客了,只是顧自己去Google和baidu里面去找資料。后來發現有些東西還是講下來自己會更加清楚明白。以后每周都會逼迫自己寫寫技術文章。廢話到此為止
-----------------------------------------------------------------------------------------------
今天我們講講ASP.NET MVC,我使用的是MVC3基于VS2012,當然大家可以在VS2010里面去下載:http://www.microsoft.com/zh-cn/download/details.aspx?id=4211。
然后接下來是我個人經驗,如果有錯誤歡迎大家指正。
首先我們打開VS2012創建一個ASP.NET MVC 3項目。在創建使用VS2012里面會彈出一個對話框里面有3個選項
1:空(本人一般使用此選項,因為這個選項不會在項目中創建其它垃圾文件和代碼)
2:Internet應用程序(帶有使用窗體身份驗證的帳戶控制器的默認 ASP.NET MVC 3 項目。
注:示例輔助學習項目,里面會自帶一些文件和代碼。)在這里不多介紹此選項大家有興趣就自己創建一個看看。
3:Intranet應用程序(此選項同樣跟第二個選項差不多的,此選項中比第二個多個功能是它幫您創建了基于Windows身份驗證)在這里不多介紹此選項大家有興趣就自己創建一個看看。
我們還是創建一個空的項目吧。
以下創建空項目時會包含幾個選項
1:視圖引擎我們選擇Razor此為MVC3的語法,當然這里可以不用Razor可以選擇ASPX,當ASPX時基于MVC2語法。接下來的課程都是基于Razor語法的。(默認選項)
2:另外問我們是否使用HTML5語義標記。(本課程知識講解MVC3,所以我們還是默認選項)
接下來我們講解主要是入門講解章節
本章主要講解是:1)MVC基本講解
??2)創建項目后目錄層次和作用
??3)簡單代碼演示
一、MVC基本講解
?什么是MVC(MVC全稱是:M-Model、V-View、C-Controller)中文翻譯(模型->視圖->控制器)。接下我想說明它們之間的關系。Model主要是負責數據模型和數據轉化,View主要負責UI(User Interface)補充:在這里我想說說其實用戶使用的每個View按鈕都是對應的一個Action,Controller主要負責用戶操作,在每個View上面的按鈕都會對應一個Controller里面的一個方法(在此我們稱為Action)。
?它們之間的關系是View通過按鈕調用后臺的Controller里面的Action進行得到客戶想要的操作。Controller就會對前臺的數據進行操作,當用戶需要操作數據時Controller就會發送用戶View上面的以處理好的值給Model。Model主要是處理實體類和數據文件(如:LINQ to SQL、Entity Framework實體框架)。
以上就是對MVC的一個簡單講解。
二、創建項目后目錄層次和作用
打開VS2012 創建 Web里面有ASP.NET MVC3 Web 應用程序。
項目結構
項目結構講解
App_Data(這個文件夾大家都應該很熟悉了。在WebForms中都可能用到,此文件夾用于存儲數據文件如:Access、*.sql腳本文件、數據庫備份文件等)
Content(本文件夾負責一些CSS和主題文件。大家可以點進去看看)
Controller(本文件夾一眼就看出來就是我們的MVC里面C了,上面提到我們這個文件夾主要的作用,負責對UI的操作。補充:一個View對應一個Controller)
Models(本文件夾也就是我們的MVC里面M了,主要負責的是實體數據了。同時對Controller要操作的對象數據而提供的)
Scripts(本文件夾屬于想自動創建的文件夾主要里面包括一些腳本文件:主要是幫助開發者下載現在廣泛使用的Jquery、AJAX異步操作的腳本文件)有興趣的自己可以對每個文件打開研究里面代碼
View(本文件夾就是與用戶打交道的文件了里面都是存放界面文件,里面已經有VS為我們創建的文件了可以直接在項目中使用如:Shared目錄下面的Error.cshtml等(補充:如我們使用的是MVC2的項目里面文件后綴名為.ASPX,如我們使用的MVC3的項目里面放的文件后綴名為.cshtm。補充2:如果我們是VB.net語法的.vbhtml))
Global.asax 此文件是全局文件,里面有一些代碼是我們以后要談的路由(Route)在此處暫時不講解和修改默認就行了。
Web.Config XML文件也是屬于全局文件主要用戶一些配置,在ASP.NETWebForms里面一樣可以配置數據庫等等配置。與WebForms不一樣的是里面詳細描述了MVC的一些信息。如:有興趣自己可以研究每一條XML語句是做什么的。
MVC官方有句說話叫做約定大于語法,所以這句話在我理解就是MVC就是一套微軟提供的框架并且大于語法(語法只是對開發上使用,而通過這框架是進行了代碼和UI分離)
以上是對MVC3項目里面的目錄和結構的講解
三、代碼演示
我先創建一個Controller,創建步驟右鍵點擊Controller目錄->添加->控制器(注意:選擇后彈出框里面控制器名稱:Default1Controller,只用修改Default1后面的是約定就是上面我說的約定大于語法),修改成HomeController。在此我們就創建了一個控制器了
然后我們就要創建一個View,創建步驟右鍵我們創建一個Home的文件夾來保存我們的View,然后在Home文件右鍵添加視圖,修改視圖名稱為Index。下面其它默認不修改(介紹:視圖引擎上面我說到了我們使用的MVC3所以我們這里是Razor語法)。創建強類型視圖(此處有點遺忘了好像是使用自定義別人寫的窗體,此處忘記如果有錯誤下一章我會提到和解釋下)創建為分部視圖:這個就是問您是否要把此View是否設置成ViewUserControl我們這里暫時不用修改。使用布局或母版頁:此處是問您是否要把這個頁面設置成部件頁面,也就是這里如果有框架頁面或者母版頁都可以使用,這里暫時用不著。
以上2個部分都創建成功后我們就開始我們的一個MVC3的例子
此例子就顯示下字符串把“我們的一個ASP.NET MVC3示例”加當前時間
最后我們進行開發吧,我剛才在上面提到一個View功能代表一個Controller里面的Action現在在我們里面的Index方法里面添加一句話ViewBag.Message = "我們的一個ASP.NET MVC3示例 " + DateTime.Now.ToString();return View();代表返回式當前的View,里面也可以寫其它的View名稱。如:return View("xxxx");或return View("Display");
然后我們要輸出這個字符串,因為我們這里寫的代碼只有后臺代碼明白,但是前臺代碼不認識,我們必須告訴前臺你要輸出字符串。然后我們找到我們的View在頁面調用@ViewBag.Message。@個符號就是我們今后要學習的Razor語法,今天就介紹這一個語法的使用。
補充:ViewBag.此處可以申請您需要的對象(就等于是申請C#字符串一樣 如:string str="C#",這里string換成了ViewBag。)
Controller/HomeController文件
Controller/HomeController文件
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.Mvc; 6 7 namespace Example_MVC.Controllers 8 { 9 public class HomeController : Controller 10 { 11 // 12 // GET: /Home/ 13 14 public ActionResult Index() 15 { 16 ViewBag.Message = "我們的一個ASP.NET MVC3示例 " + DateTime.Now.ToString(); 17 //return View("Display");//Home/Display View頁面 18 return View();//Index View頁面 19 } 20 21 } 22 }View/Home/Index.cshtml文件
@{ViewBag.Title = "Index"; }<h2>@ViewBag.Message</h2>如果 return View("Display")頁面
View/Home/Display.cshtml文件 跟上面的 Index.cshtml文件
@{ViewBag.Title = "Index"; }<h2>@ViewBag.Message</h2>下載代碼
轉載于:https://www.cnblogs.com/XiaoLongZhang/p/3413896.html
總結
以上是生活随笔為你收集整理的ASP.NET MVC 第一章 我们的第一个MVC例子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Http协议:状态码
- 下一篇: [翻译]01-ASP.NET MVC 3