色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

控制器Controller的使用方法

jf_78858299 ? 來源:python技術探秘 ? 作者:夢中的Aoede ? 2023-03-29 11:28 ? 次閱讀

Controller的運行過程

上文我們已經講到,控制器負責響應瀏覽器傳送過來的所有請求。在MVC中,每一個瀏覽器請求都映射到一個控制器(Controller)中,每個請求都會有個動作(Action),只要動作存在,就可以通過該動作方法接收客戶端傳來的請求與決定響應的視圖(View)。

我們以之前創建的MVC項目為例,打開項目的Index.cshtml頁面。

圖片

顯示的界面如下:

圖片

可以看到,頁面的地址欄URL為:http://localhost:61515/Home/Index

根據路由規則,Home是控制器(Controller)名,Index是動作(Action)名。所以這個URL調用的是HomeController控制器下的Index方法。

圖片

在Index方法中,只有這么一行代碼:return View();,表示返回視圖,然后返回給瀏覽器的是Views/Home文件夾下的Index.cshtml頁面。

雖然我們在Index方法中沒有指定返回哪個頁面,但根據ASP.NET MVC的約定規則,控制器會找到Views文件夾中,與Controller名稱相同文件夾下的同一方法名的頁面。所以返回的是Home下的Index.cshtml頁面。具體的有關控制器返回View的內容下文會詳細說明。

控制器的運行過程大體如上,從瀏覽器請求到控制器返回結果的整體流程為:

圖片

Controller請求參數處理

試想一下,我們在瀏覽器地址欄經常能看到URL后面接很多個參數,比如百度搜索:https://www.baidu.com/s?ie=UTF-8&wd=夢中的Aoede URL后面有ie和wd兩個參數,那么這種參數在MVC中是怎樣獲取的呢?

舉個例子,我們給首頁鏈接增加兩個參數:http://localhost:61515/Home/Index?name=夢中的Aoede&age=18。

那么在Index方法中,正常情況我們可以通過Request.QueryString獲取到這兩個參數。如下:

public ActionResult Index()
{
    var name = Request.QueryString["name"];
    var age = Request.QueryString["age"];
    return Content($"name:{name},age:{age}");
}

打開http://localhost:61515/Home/Index?name=夢中的Aoede&age=18,顯示如下:

圖片其實在MVC中,參數的傳遞是通過模型綁定(Model Binding)機制從RequestContext中獲取到參數數據的。獲取到數據之后再將數據傳入到方法的參數中,所以我們只需要在方法中增加兩個參數即可,如下:

public ActionResult Index(string name,int age)
{
      return Content($"name:{name},age:{age}");
}

打開頁面輸出結果還是一樣的:

圖片相同的,如果瀏覽器通過POST方式傳過來一個表單,那么我們也可以在Index參數中使用表單對應的Model實體類來接收。在此我就不贅述了。

Controller返回值說明

Action處理完請求后,會將結果返回給客戶端。Action返回的結果我們稱為動作結果(Action Result)。

所有的動作結果都繼承自ActionResult基類,以HomeController中的Index方法為例,它return的View()就是一個ViewResult類,ViewResult類也是ActionResult的子類。

ASP.NET MVC框架支持六種標準類型的動作結果:

動作名稱 概述 方法名
ViewResult 視圖內容,HTML或標記 View
EmptyResult 空內容
RedirectResult 重定向到新的URL Redirect
RedirectToRouteResult 重定向到新的控制器 RedirectToAction/RedirectToRoute
JsonResult 返回一個JSON(Javascript Object Notation)內容 Json
ContentResult 返回文本內容 Content

需要注意的是,雖然控制器返回的是動作結果(Action Result),但在代碼中,我們調用的是Controller基類中的方法。在上文的表中有對應的方法名。

除了以上六種動作結果以外,你還可以給Action方法返回其他類型的返回值,這個返回值會自動被包裝在ContentResult中。比如這段代碼:

public class HomeController : Controlle
{
    public DateTime Index()
    {
        return DateTime.Now;
    }
}

Index返回的是DateTime對象,而在瀏覽器中,顯示的是一個日期字符串。

圖片

MVC過濾器

過濾器在MVC中也是個非常重要的概念,本文僅簡單介紹下什么是過濾器,詳細的內容我會在后續文章中深入說明。

過濾器(Filters)就是向請求處理管道中注入額外的邏輯。

過濾器有不同類型,MVC支持的過濾器有:授權(Authorization)、行為(Action)、結果(Result)和異常(四種),不同類型有不同的作用,詳細的內容我會在后續內容說明。

我們以授權(Authorization)為例簡單說明下。比如我們有個方法,只有登錄用戶才可以調用,那么我們只需要添加一個驗證用戶是否登錄的授權過濾器,在對應的方法上方添加此過濾器的標記即可。

總結

通過本文可以了解到,Controller的運行過程,Controller中Action如何獲取參數、以及Action的返回值類型等內容。更多內容可關注我后續文章。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16376

    瀏覽量

    178200
  • 瀏覽器
    +關注

    關注

    1

    文章

    1027

    瀏覽量

    35374
  • MVC
    MVC
    +關注

    關注

    0

    文章

    73

    瀏覽量

    13870
收藏 人收藏

    評論

    相關推薦

    基型控制器使用方法

    目前,控制器(儀表)已經很多,產品已在工程實際中得到了廣泛的應用,基型控制器使用方法如下:1.基型控制器主要性能指標基型控制器的主要技術指
    發表于 06-22 10:18

    PID Controller比例積分微分控制器

    Introduce引言Speend速度來源LPFilter低通濾波PID Controller比例積分微分控制器Summary總結
    發表于 09-03 06:45

    STM32外部中斷事件控制器EXTI的相關資料推薦

    : External interrupt / event controller外部中斷/事件控制器提示:以下是本篇文章正文內容一、EXTI功能框圖二、使用方法1.EXTI_InitTypeDef 初始化結構體1-EXTI_Lin
    發表于 12-01 08:06

    控制器的GPRS無線上網方法

    介紹一種在微控制器上實現PPP協議,并使其控制GPRS模塊通過GPRS連入Internet的方法;介紹GPRS技術和GPRS模塊的使用方法;重點介紹微
    發表于 04-16 21:56 ?2789次閱讀
    微<b class='flag-5'>控制器</b>的GPRS無線上網<b class='flag-5'>方法</b>

    DS18B20_溫度控制器的參數

    介紹溫度控制器的參數,功能和使用方法。應用有點。
    發表于 06-23 17:56 ?0次下載

    基于GUS Controller運動控制器軟件調試及接線

    GUS Controller 系列運動控制器,是將PC 技術與運動控制找支術相結合的產物。它以X86 架構的CPU 和芯片糾為系統處理,采用高性能DSP 和FPGA 作為運動
    發表于 10-12 15:32 ?11次下載

    ac控制器怎么設置_AC控制器帶寬控制設置指導

    ac控制器是接入控制器(Access Controller或Wireless Access oint Controller),即無線控制器,
    發表于 03-27 15:37 ?5.3w次閱讀
    ac<b class='flag-5'>控制器</b>怎么設置_AC<b class='flag-5'>控制器</b>帶寬<b class='flag-5'>控制</b>設置指導

    STM32外部中斷事件控制器EXTI概念及使用方法

    : External interrupt / event controller外部中斷/事件控制器提示:以下是本篇文章正文內容一、EXTI功能框圖二、使用方法1.EXTI_InitTypeDef 初始化結構體1-EXTI_Lin
    發表于 11-22 16:21 ?7次下載
    STM32外部中斷事件<b class='flag-5'>控制器</b>EXTI概念及<b class='flag-5'>使用方法</b>

    模糊控制器的原理及使用方法

    模糊控制器是一種基于模糊邏輯的控制器,通過將輸入變量和輸出變量都表示為模糊量,并運用模糊推理來實現針對復雜系統的控制。與傳統的控制器相比,模糊控制器
    發表于 03-17 18:12 ?3521次閱讀

    恒溫控制器使用方法

    需要注意的是,使用恒溫控制器時應遵循安全操作規程,將布線正確連接,以確保恒溫控制器的正常運行。同時,根據控制器的使用說明書,了解控制器的特性,確保正確使用。
    發表于 03-25 11:08 ?4255次閱讀

    PLC控制器的工作方式和使用方法

     PLC就是可編程邏輯控制器(Programmable Logic Controller)的縮寫。它是一種專用的數字計算機,用于控制生產線、機器設備或工業過程中的自動化系統。它能夠接受數字或模擬信號
    發表于 03-30 18:22 ?6539次閱讀

    正運動技術CAD導圖軟件配合控制器使用方法

    正運動技術CAD導圖軟件配合控制器使用方法
    的頭像 發表于 10-12 18:20 ?2028次閱讀
    正運動技術CAD導圖軟件配合<b class='flag-5'>控制器</b>的<b class='flag-5'>使用方法</b>

    手柄控制代碼及使用方法

    手柄控制代碼及使用方法
    的頭像 發表于 05-15 10:19 ?1845次閱讀

    PLC控制器使用方法和注意事項

    隨著工業自動化技術的飛速發展,可編程邏輯控制器(PLC)作為工業自動化領域的核心控制設備,已經廣泛應用于各個生產領域。PLC以其高可靠性、高靈活性、易編程等優點,成為了工業自動化中不可或缺的一部分。本文將詳細介紹PLC控制器
    的頭像 發表于 06-14 16:01 ?1353次閱讀

    PLC中斷功能的作用及使用方法

    在工業自動化控制系統中,PLC(Programmable Logic Controller,可編程邏輯控制器)作為核心的控制單元,承擔著處理各種控制
    的頭像 發表于 06-15 17:54 ?2075次閱讀
    主站蜘蛛池模板: 黄色aa大片| 熟女啪啪白浆嗷嗷叫| 亚洲免费视频观看| 精品久久久亚洲精品中文字幕| 一本道中文无码亚洲| 免费精品在线视频| 动漫美女禁区图| 亚洲精品无AMM毛片| 伦 乱真实故事| 俄罗斯人xxx| 一本色道久久综合一区| 欧美成人性色生活18黑人| 国产精品18久久久久久欧美网址| 亚洲欧洲精品A片久久99| 免费精品在线视频| 国产精品18久久久久久白浆.| 一本色道久久综合亚洲精品| 欧美激情性AAAAA片欧美 | 主播蜜汁丝袜精品自拍| 日韩精品一卡二卡三卡四卡2021| 果冻传媒mv国产陈若瑶主演| 免费无码又爽又黄又刺激网站 | 色欲AV精品人妻一区二区三区 | 有人有片的观看免费视频| 强上轮流内射高NP男男| 九九热视频在线观看| 抽插妇女疯狂视频| 一二三四视频免费社区5| 色狠狠婷婷97| 九九热在线观看视频| 怪物高h粗暴无尽| 5G年龄确认我已满18免费| 亚洲AV福利天堂一区二区三| 欧美v1deossexo高清| 国产麻豆剧果冻传媒免费网站| 最近中文字幕高清中文字幕MV| 无码中文字幕热热久久| 嫩草亚洲国产精品| 久久国产av偷拍在线| 国产剧情在线精品视频不卡| 99re在这里只有精品|