1. 程式人生 > >1.MVC的初步了解

1.MVC的初步了解

存在 logs sax 技術分享 構造器 c項目 重要文件 足夠 方案

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的初步了解