国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - ASP.NET教程 - ASP.NET Core中的Controller使用示例

ASP.NET Core中的Controller使用示例

2020-06-29 14:26Agile.Zhou ASP.NET教程

這篇文章主要介紹了ASP.NET Core中的Controller使用示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

ASP.NET CORE出現(xiàn)之前我們實(shí)現(xiàn)的Controller,MVC都繼承自Controller基類,WebApi的話繼承自ApiController。現(xiàn)在ASP.NET CORE把MVC跟WebApi合并了,已經(jīng)不再區(qū)分MVC或者WebApi。ASP.NET CORE的Controller繼承結(jié)構(gòu)也發(fā)生了變化。我們看其他示例的時候會發(fā)現(xiàn)有些繼承自Controller有些繼承自ControllerBase。事實(shí)上ControllerBase是Controller的基類。也就是說如果你繼承自Controller,其實(shí)就是繼承了ControllerBase。那什么時候該選擇直接繼承ControllerBase呢?

ControllerBase

我們先看看ControllerBase的元數(shù)據(jù):

ASP.NET Core中的Controller使用示例

很長并沒有截全。可以看到ControllerBase是個抽象類,并且實(shí)現(xiàn)了大量的虛方法。這些虛方法大都是對應(yīng)了Http的狀態(tài)碼。
比如:

?
1
2
3
4
5
public virtual OkResult Ok(); //http status 200
public virtual NotFoundResult NotFound(); //http status 404
public virtual ForbidResult Forbid(); //http status 403
public virtual CreatedResult Created(Uri uri, [ActionResultObjectValue] object value); // http status 201
...還有很多很多...

顯然這是為Restful Api設(shè)計的基類,所以當(dāng)你要設(shè)計一個Restful(web api)接口的時候可以選擇繼承自ControllerBase,它已經(jīng)可以滿足你的需求。

Controller

查看下Controller的元數(shù)據(jù):

ASP.NET Core中的Controller使用示例

Controller也是一個抽象類,繼承自ControllerBase,并且繼承了幾個接口。很明顯Controller比ControllerBase多的內(nèi)容主要是一些跟MVC打交道的東西。
比如:Viewbag、Viewdata屬性,Json、View方法等:

?
1
2
3
4
5
public dynamic ViewBag { get; }
public ViewDataDictionary ViewData { get; set; }
public virtual JsonResult Json(object data);
public virtual ViewResult View();
...

所以如果你是需要實(shí)現(xiàn)一個MVC系統(tǒng),想要使用cshtml模板跟razor試圖引擎渲染頁面則需要繼承Controller。

POCO Controller

除了繼承Controller、ControllerBase之外,ASP.NET CORE框架可以讓你的POCO類直接變成Controller。

使用“Controller”后綴

下面的代碼,TestController可以正常工作嗎?

?
1
2
3
4
5
6
7
8
9
[Route("api/[controller]")]
 public class TestController
 {
   [HttpGet]
   public string Get()
   {
     return "TestController";
   }
 }

運(yùn)行一下:

ASP.NET Core中的Controller使用示例

雖然TestController類并沒有繼承自任何類,但是他確實(shí)可以在ASP.NET CORE框架內(nèi)正常工作。ASP.NET CORE框架默認(rèn)會查找后綴為“Controller”的類,并把它當(dāng)做真正的Controller使用,在路由系統(tǒng)最終匹配Controller的時候它也會被嘗試匹配。

使用ControllerAttribute

如果你的控制器類有什么特別需求,連類名都不想加入“Controller”的后綴,那么還有一種方法就是使用ControllerAttribute。

?
1
2
3
4
5
6
7
8
9
10
[Controller]
[Route("api/[controller]")]
public class POCO
{
  [HttpGet]
  public string Get()
  {
    return "POCOController";
  }
}

運(yùn)行一下:

ASP.NET Core中的Controller使用示例

POCO類并沒有繼承自任何類,并且也沒有“Controller”后綴命名,但是因?yàn)樗粯?biāo)記了ControllerAttribute同樣會被ASP.NET CORE框架認(rèn)為是一個Controller。在路由系統(tǒng)最終匹配Controller的時候它也會被嘗試匹配。

使用NonControllerAttribute

如果你的一個類名恰巧包含“Controller”的后綴,但你并不想ASP.NET CORE框架發(fā)現(xiàn)它,你可以在類上加上NonControllerAttribute。這樣ASP.NET CORE框架就會忽略它。
改一下剛才的TestController,加上[NonController]:

?
1
2
3
4
5
6
7
8
9
10
[NonController]
[Route("api/[controller]")]
public class TestController
{
  [HttpGet]
  public string Get()
  {
    return "TestController";
  }
}

運(yùn)行一下:

ASP.NET Core中的Controller使用示例

/api/test已經(jīng)匹配不到controller了。

總結(jié)

  • 設(shè)計restful(web api)接口的時候可以繼承ControllerBase
  • 設(shè)計MVC系統(tǒng)的時候可以繼承Controller
  • 當(dāng)一個POCO類名稱包含"Controller"后綴或添加ControllerAttribute的時候框架會認(rèn)為這是一個控制器
  • 當(dāng)一個類不想被框架當(dāng)做控制器的時候可以添加NonControllerAttribute

到此這篇關(guān)于ASP.NET Core中的Controller使用示例的文章就介紹到這了,更多相關(guān)ASP.NET Core Controller內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://www.cnblogs.com/kklldog/p/aspnetcore-controller.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 天天躁人人躁人人躁狂躁 | 色噜 | 国产偷亚洲偷欧美偷精品 | 精品久久久久久久人人人人传媒 | 日韩精品视频在线观看一区二区 | 日韩精品一区二区三区免费视频 | 一区二区三区四区在线 | 亚洲视频一区二区三区 | 免费在线观看一区二区 | 亚洲国产精品久久久久秋霞蜜臀 | 欧美高清性xxxxhdvideosex | 91粉色视频 | 日韩精品影院 | 色网综合 | 久久男人 | 免费黄色在线观看 | av片在线看 | www.成人.com | 99久久国| 精品国产乱码久久久久久影片 | 久草福利在线视频 | 成人久久一区 | 久久噜| 精品久久久久久久久久久久久久 | 久久99视频这里只有精品 | 国产精品美女久久久久久免费 | 日韩一二区 | 精品欧美一区二区三区久久久 | 国产无套丰满白嫩对白 | 久久性色| 欧美成人精品一区二区男人看 | 偷自在线 | 国产色黄视频 | 成人午夜激情 | 亚洲午夜激情 | 亚洲精品一区二区三区蜜桃久 | 日韩综合在线 | 黄色一级久久 | 国产精品国产成人国产三级 | 国产一区二 | 中国毛片基地 |