.NET MVC5簡介(一)


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

 

 

狹義MVC:

  MVC是web開發框架

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

  V:View,用戶看到的視圖模型

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

廣義MVC:

  Model、VIew、Controller

  V:界面

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

  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是個動態類型--運行時檢測--編譯時隨便你寫
利用委托的,性能比反射高,可以提供便利
弱類型語言的特點,方便做一些特殊處理

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM