.NET MVC5簡介(一)

来源:https://www.cnblogs.com/taotaozhuanyong/archive/2019/09/22/11569839.html
-Advertisement-
Play Games

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


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

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 發現模塊和集群的形成 目標 發現節點 Master選舉 組成集群,在Master信息發生變化時及時更新。 故障檢測 細分為幾個子模塊 Discovery發現模塊 Discover是在集群Master節點未知時,互相發現對方的過程,例如新節點的加入或是先前的主節點宕機,如果一個節點不滿足Master資 ...
  • JConsole(可視化工具) 運行 JConsole記憶體監控 測試代碼 這裡看到我們有倆個線程。 JPS(JVM Process status) JPS是使用的頻率最高的工具,和linux下的ps命令差不多(把J去掉就是一個ps)。 因為我這裡開啟了一個eclipse,所以運行結果如下所示: 如果 ...
  • 1. 概述 在本教程中,我們將探討如何使用兩種不同的策略改進客戶端重試:指數後退和抖動。 2. 重試 在分散式系統中,多個組件之間的網路通信隨時可能發生故障。 客戶端應用程式通過實現重試來處理這些失敗。 設想我們有一個調用遠程服務的客戶端應用程式—— PingPongService 。 如果 Pin ...
  • 0922自我總結 DJango錯誤日誌生成 setting.py設置 exception.py(拋錯設置) logging.py ...
  • 工作了兩個月了體會到了很多之前做外包小項目沒有的東西,不得不說大廠的還是有自己一套的完善的體制,不會像B站那樣泄露自己整個後臺的源碼這種事情發生。 電腦辦公 比如說在使用電腦辦公這方面,剛入職那天每個人都會領一臺電腦(MAC和Windows都有看工作需要),每個人領的電腦上都裝有 度管家 ,度管家是 ...
  • 1、ssh免密登錄 ssh ip地址 免密登錄配置 生成公鑰和私鑰 將公鑰拷貝到要免密登錄的目標機器上 .ssh文件夾下(~/.ssh)的文件功能解釋 (1)known_hosts :記錄ssh訪問過電腦的公鑰(public key) (2)id_rsa :生成的私鑰 (3)id_rsa.pub ...
  • 1、HttpClient遠程介面調用 1)用戶註冊 註冊按鈕 提交表單時,要 表單 js提交表單 2)載入外部資源文件 app.properties 編輯 RestApiServerInfo.java 3)HTTPClient工具遠程調用介面 導入依賴 發送post請求 工具類 遠程介面返回 封裝對 ...
  • 緩存的實現 我們不是做第三方比如Redis等的緩存實現,而是根據實際情況,基於C#上做一些環境變數的保存,方便項目使用。 1、系統全局變數 很多時候,在系統運行開始,需要對系統的運行參數進行保存,以便供全局使用。 代碼如下: 這裡使用一個靜態變數的Dictionary來進行保存,所有項目均可以直接獲 ...
一周排行
    -Advertisement-
    Play Games
  • 1. 說明 /* Performs operations on System.String instances that contain file or directory path information. These operations are performed in a cross-pla ...
  • 視頻地址:【WebApi+Vue3從0到1搭建《許可權管理系統》系列視頻:搭建JWT系統鑒權-嗶哩嗶哩】 https://b23.tv/R6cOcDO qq群:801913255 一、在appsettings.json中設置鑒權屬性 /*jwt鑒權*/ "JwtSetting": { "Issuer" ...
  • 引言 集成測試可在包含應用支持基礎結構(如資料庫、文件系統和網路)的級別上確保應用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和記憶體中測試伺服器結合使用來支持集成測試。 簡介 集成測試與單元測試相比,能夠在更廣泛的級別上評估應用的組件,確認多個組件一起工作以生成預 ...
  • 在.NET Emit編程中,我們探討了運算操作指令的重要性和應用。這些指令包括各種數學運算、位操作和比較操作,能夠在動態生成的代碼中實現對數據的處理和操作。通過這些指令,開發人員可以靈活地進行算術運算、邏輯運算和比較操作,從而實現各種複雜的演算法和邏輯......本篇之後,將進入第七部分:實戰項目 ...
  • 前言 多表頭表格是一個常見的業務需求,然而WPF中卻沒有預設實現這個功能,得益於WPF強大的控制項模板設計,我們可以通過修改控制項模板的方式自己實現它。 一、需求分析 下圖為一個典型的統計表格,統計1-12月的數據。 此時我們有一個需求,需要將月份按季度劃分,以便能夠直觀地看到季度統計數據,以下為該需求 ...
  • 如何將 ASP.NET Core MVC 項目的視圖分離到另一個項目 在當下這個年代 SPA 已是主流,人們早已忘記了 MVC 以及 Razor 的故事。但是在某些場景下 SSR 還是有意想不到效果。比如某些靜態頁面,比如追求首屏載入速度的時候。最近在項目中回歸傳統效果還是不錯。 有的時候我們希望將 ...
  • System.AggregateException: 發生一個或多個錯誤。 > Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失敗。檢查輸出視窗瞭解更多詳細信息。 內部異常堆棧跟蹤的結尾 > (內部異常 #0) Microsoft ...
  • 引言 在上一章節我們實戰了在Asp.Net Core中的項目實戰,這一章節講解一下如何測試Asp.Net Core的中間件。 TestServer 還記得我們在集成測試中提供的TestServer嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 ...
  • 在發現結果為真的WHEN子句時,CASE表達式的真假值判斷會終止,剩餘的WHEN子句會被忽略: CASE WHEN col_1 IN ('a', 'b') THEN '第一' WHEN col_1 IN ('a') THEN '第二' ELSE '其他' END 註意: 統一各分支返回的數據類型. ...
  • 在C#編程世界中,語法的精妙之處往往體現在那些看似微小卻極具影響力的符號與結構之中。其中,“_ =” 這一組合突然出現還真不知道什麼意思。本文將深入剖析“_ =” 的含義、工作原理及其在實際編程中的廣泛應用,揭示其作為C#語法奇兵的重要角色。 一、下劃線 _:神秘的棄元符號 下劃線 _ 在C#中並非 ...