我建立一個簡單的API與asp.netcore 1.1並試圖創建超媒體鏈接。我已經看過Asp.net核心UrlHelper返回空值
WebAPI Url.Link() returning NULL
和幾個同類者,但這些都不是的幫助。
我控制器
[ApiVersion("1.0")]
[Route("api/v{version:apiVersion}/organizers")]
public class OrganizersController : Controller
{
[HttpGet, Route("{id:int}", Name = "get-organizers")]
public IActionResult Get(int id)
{
try
{
var uri = Url.Link("default", new {id=2});
var uri2 = Url.RouteUrl("default", new { controller = "Organizers", action = "get-organizers", id = 1 });
(...)
}
(...)
}
我啓動看起來像
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IApplicationLifetime appLifetime)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
//serilog
loggerFactory.AddSerilog();
app.UseMvc(opt=>opt.MapRoute("default", "api/v{version:apiVersion}/{controller}/{action}/{id:int?}"));
appLifetime.ApplicationStopped.Register(() => ApplicationContainer.Dispose());
}
我已經嘗試了可能的參數很多置換包括刪除操作,API,版本等。不過,我得到空的兩個網址。
不應該動作參數是「Get」而不是Routename? – JOSEFtw