.netcore 雜項

https 跳轉到 http 時的 Referer 丟失

 

獲取服務自身監聽的地址:

/var server = serviceProvider.GetRequiredService<IServer>();
var providerHost = hostServer.Features.Get<IServerAddressesFeature>();

需要 IServiceProvider   注入即可。

2、

 RouteUrl 生成Url的bug

services.AddMvc(options => {
  options.EnableEndpointRouting = false; //BUG ,如果不設置成false則使用Url.RouteUrl 無法生成路由
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

已經確實是bug,將在3.0時修復該bug。具體:https://github.com/aspnet/AspNetCore/issues/4549

3、

NETCORE 中的API 路由設置

[HttpGet("get/{id}")]
[HttpGet("get")] 

public IActionResult  Get(int  id)

可以兼容    /get/6  和  get/?id=6 和 get?id=6 三種方式,但是後兩種無法將id值傳給action的id參數,使用Request.Query["id"]獲取即可 

但是:當單獨使用 [HttpGet("get")]  標註Action 時 上文中的?id=6 的值可以傳如到Action 參數中。

不知道這是不是BUG

 4、

當controller  使用 [ApiController]  時候可以使用 [HttpPost("name")]  設置路由名稱,此時[ActionName("name")]無效

當controller 不適用 ApiController 特性的時候,需要使用 [HttpPost] 特性和 [ActionName("name")] 來設置路由名稱

mmp

5、使用枚舉獲取Header

HeaderNames.ContentType  如此這般

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章