1.MVC的初步了解
1.MVC簡單介紹
1)原理(如圖)如果想更加深入了解原理,可以訪問此地址(https://www.cnblogs.com/uicodeintoworld/p/8950877.html)
理解:客戶端向後臺請求數據,控制器(Controller)接收到請求消息後,從模型層(Model)中獲取數據,並且返回相應的視圖給客戶端
2)MVC項目文件夾說明
a、App_Data:用來保存數據文件,比如XML文件等
b、App_Start:包含MVC啟動的相關類 RouteConfig.cs 路由配置
c、Global.asax.cs全局應用程序控制文件 啟動路由配置RouteConfig.cs
d、Controller:存放整個項目“控制器”代碼文件
e、Models:存放整個項目的“模型”代碼文件
f、Views:存放整個項目的“視圖”代碼文件(網頁/界面)
3) 重要文件說明
a、Views下面的web.config:是整個視圖的配置文件;根目錄下的web.config:作用於整個項目的配置
b、Global.asax.cs全局應用程序控制文件
4) MVC中的一些基本規則
a、控制器必須以Controller結尾
b、視圖必須放到Views文件夾中,並且要和控制器同名的子目錄中創建
c、通過控制器的Action方法來返回相應的視圖給客戶端(例如view() 則返回跟控制器名稱(去掉結尾的Controller)相同的文件夾下的視圖給客戶端)
2.ASP.NET Web Form和ASP.NET MVC的優缺點
ASP.NET Web Form:
1)缺點:
a. 響應時間: 服務器響應請求的耗時
通過分析我們可以得知,每一次請求都有轉換邏輯,運行並轉換服務器控件為HTML輸出。(把服務器控件轉換為客戶端控件)
如果我們的頁面使用表格,樹形控件等復雜控件,轉換就會變得很糟糕且非常復雜。
HTML輸出也是非常復雜的。由於這些不必要的轉換從而增加了響應時間。該問題的解決方案就是擺脫後臺代碼,寫成純HTML代碼。
b.帶寬的消耗
頁面Viewstates會自動保存post返回的狀態,減少開發時間。但是這種開發時間的減少會帶來巨大的消耗,Viewstate增加了頁面的大小,使的頁面的加載速度變慢,影響了客戶的使用。
2)優點
a、有很多控件和事件
b、擁有視圖狀態,能對界面的狀態進行有效管理
c、有很多組件可以使用,能夠快速進行開發
d、具有傳統思維模式,便於理解
3)原理圖
MVC:
1)優點
a、分了三層,結構清晰簡單,比較方便
b、不依賴於視圖狀態和Web窗體,適合以業務邏輯為中心的開發項目
c、將業務邏輯和視圖分開,降低了耦合度
d、便於測試
e、適合大型團隊協同開發
2) 缺點
a、增加了系統結構和實現的復雜性。對於簡單的界面,嚴格遵循MVC,使模型、視圖與控制器分離,會增加結構的復雜性,並可能產生過多的更新操作,降低運行效率。
b、視圖與控制器間的過於緊密的連接。視圖與控制器是相互分離,但確實聯系緊密的部件,視圖沒有控制器的存在,其應用是很有限的,反之亦然,這樣就妨礙了他們的獨立重用。
c、視圖對模型數據的低效率訪問。依據模型操作接口的不同,視圖可能需要多次調用才能獲得足夠的顯示數據。對未變化數據的不必要的頻繁訪問,也將損害操作性能。
d 、目前,一般高級的界面工具或構造器不支持MVC模式。改造這些工具以適應MVC需要和建立分離的部件的代價是很高的,從而造成使用MVC的困難。
3.代碼簡單實例
using System; using System.Collections.Generic; using System.Linq; using System.Web;//ASP.NET核心命名空間 using System.Web.Mvc;//MVC框架基本的命名空間 namespace MyFirstMVC.Controllers { public class HomeController : Controller//每個控制器必須繼承的基類 { // GET: Home //控制器的動作方法,用於響應客戶端的請求,並調用響應的視圖向瀏覽器輸出信息 public ActionResult Index() { //[1]獲取數據:接收請求數據 //[2]業務處理:和Model交互... //[3]返回視圖或跳轉到其他控制器 return View();//該方法默認調用Index視圖(與Index()方法同名的視圖) } } }
1.MVC的初步了解