Taurus.MVC WebAPI 入門開發教學2:新增控制器輸出Hello World。

2022-08-04 21:02:33

系列目錄

1、Taurus.MVC WebAPI  入門開發教學1:框架下載環境設定與執行。

2、Taurus.MVC WebAPI 入門開發教學2:新增控制器輸出Hello World。

3、Taurus.MVC WebAPI 入門開發教學3:路由型別和路由對映。

4、Taurus.MVC WebAPI 入門開發教學4:控制器方法及引數定義、獲取及基礎校驗屬性【Require】。

5、Taurus.MVC WebAPI 入門開發教學5:控制器安全校驗屬性【HttpGet、HttpPost】【Ack】【Token】【MicroService】。

6、Taurus.MVC WebAPI 入門開發教學6:全域性控制器DefaultController與全域性事件。

7、Taurus.MVC WebAPI 入門開發教學7:業務邏輯基礎類別LogicBase的使用。

8、Taurus.MVC WebAPI 入門開發教學8:WebAPI檔案與自動化測試。

後續還有兩個系列:

1、Taurus.MVC 微服務 入門開發教學系列。

2、Taurus.MVC Web應用 入門開發教學系列。
 

前言:

本篇繼續上一篇執行程式之後,接著介紹控制器的新增和預設路由定址模式。

1、新增控制器:

在上一篇文章,執行的專案中:

新建HelloController類,繼承自核心控制器,編寫輸出Hello World方法。

 

注意事項核心三要素:

1、類名為:XXXController,以Controller結尾。

2、類繼承自:Taurus.Core.Controller(可以二次繼承,構建自己的Base基礎類別)。

3、類名和方法修飾符號為:public, 方法返回值為void,輸出用Write方法輸出。

2、指定控制器搜尋名稱:

控制器可以放在任意專案中,建議是統一新建一個控制器專案存放。

為了避免框架搜尋全域性的dll,可以通過設定指定控制器所有在的dll名稱,方便框架高效搜尋。

1、ASP.NET專案:web.config 設定:

<configuration>
  <appSettings>
    <!--指定控制器所在的專案(Dll)名稱,多個用「,「號分隔-->
    <add key="Taurus.Controllers" value="Taurus.Controllers"/>
  </appSettings>
</configuration>

2、ASP.NET Core系列專案:appsettings.json 設定:

 

 

{
  "AppSettings": {
    //這裡要改成:控制器所在的專案編繹後的dll名稱(不包括字尾,允許多個,用逗號分隔)
    "Taurus.Controllers": "WebApplication1"

  }
}

3、F5執行程式:

輸入請求網址:/控制器名稱/方法名稱

從結果很容易看出,框架預設的路徑規則是:

/控制器名稱(不含Controller結尾部分)/方法名稱。

說明:

需要定義其它的路由規則,詳情可以見下一篇文章。

輸入其它無效請求網址:

 

因為沒有定義bigboy方法,所以系統返回404。

4、攔截404的不存在方法:過載Default方法

public class HelloController : Taurus.Core.Controller
    {
        public override void Default()
        {
            Write("Hello " + Action);//Action即方法名。
        }
        public void World()
        {
            Write("Hello World");
        }
    }

再輸入之前的請求網址:

 說明:

 可以看到,所有404未定義的方法,都統一走進了過載後的Default方法,可以進行歸一處理。
重點:控制器內過載的Default方法,僅對控制器內的無效地址生效,即/hello/xxxxxx,這裡的xxxxxx部分生效。
如果是控制器級別的,則由全域性控制器DefaultController處理,後續有文章介紹。

總結:

本篇介紹控制器的新增和請求規則,下一篇講述更進一步的路由規則。