.NET MVC5簡介(一)

就像是.NET Framework WebApi與.NET Core WebApi同樣,.NET Framework MVC與.NET Core MVC的區別,也是框架的之間的區別。本系列先首先從.NET Framework MVC介紹,後面再去介紹.NET Core MVCweb

 

 

狹義MVC:後端

  MVC是web開發框架設計模式

  M:Models,數據的傳遞模型,普通的實體框架

  V:View,用戶看到的視圖模型前後端分離

  C:Controller,決定用戶使用哪一個視圖,還能調用邏輯計算,裏面的方法叫Action函數

廣義MVC:性能

  Model、VIew、Controller網站

  V:界面this

  C:控制,把M和V鏈接起來spa

  M:數據和邏輯

  程序的設計模式,一種設計的理念,能夠有效的分離界面和業務。

首先,創建一個FirstController,

public class FirstController : Controller
{
    public ActionResult Index()
    {
        return View();
    }
}

返回類型還有ViewResultBase、ViewResult、JsonResult、FilePathResult等,其實這些都繼承了ActionResult。

WebApi是返回數據的,爲啥都不都用MVC算了?其實無論是aspx/ashx/WebApi/MVC,都是使用Http協議的,因此一切的請求均可以實現的。

Aspx:屬於比較重的,默認有頁面的生命週期---先後端融合,ViewState---跟C/S是一一對應的

ashx:屬於輕量級的,沒有頁面的概念

MVC:先後端分離的,C能夠任意指定視圖,能夠踢桃後臺多態UI

WebApi:準人作專事,管道都是獨立的;RESTFul,沒有action的概念。可是在.NET Core中,兩者又融合管道了。

傳值的方式:

ViewData字段傳值,裏面是object,須要類型轉換。ViewBag,是dynamic傳值,能夠隨便屬性訪問,運行時檢測。以上兩者都是會覆蓋的,後者爲準。Model。傳值,適合複雜數據的傳遞,強類型。TempData,臨時數據,能夠跨Action後臺傳遞,存在Session裏面,用一次就清理掉。

MasterPage,Layout,默認是_layout,能夠自行指定。

Global。asax,全局式。

public class MvcApplication : System.Web.HttpApplication
{
    private Logger logger = new Logger(typeof(MvcApplication));
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);

        this.logger.Info("網站啓動了。。。");
    }


}

Application_Statr()全局啓動時執行,且執行一次,很是適合作初始化,也能夠靜態構造函數。還能夠有不少別的。

dynamic是個動態類型--運行時檢測--編譯時隨便你寫利用委託的,性能比反射高,能夠提供便利弱類型語言的特色,方便作一些特殊處理

相關文章
相關標籤/搜索