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 如此這般