我创建BaseController,看起来像这样
`[ApiController]
public class MoviesPlaceBaseController : ControllerBase
{
protected readonly IMoviesPlaceSupervisor _moviesPlaceSupervisor;
public MoviesPlaceBaseController(IMoviesPlaceSupervisor moviesPlaceSupervisor)
{
_moviesPlaceSupervisor = moviesPlaceSupervisor;
}`
在我的“PostController的”我从基本控制器类,它看起来像这样推导
` [Route("[controller]")]
[Produces("application/json")]
public class PostController : MoviesPlaceBaseController
{
public PostController(IMoviesPlaceSupervisor supervisor) : base (supervisor){ }
// GET api/post
[HttpGet]
[Produces(typeof(List<PostViewModel>))]
public async Task<ActionResult<List<PostViewModel>>> Get(CancellationToken ct = default(CancellationToken))
{
return new ObjectResult(await _moviesPlaceSupervisor.GetAllPostsAsync(ct));
}`
我launchSettings.json我删除了HTTPS URL,它现在看起来是这样的
`"MoviesPlaceAPI": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "api/",
"applicationUrl": "http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}`
我Startup.cs ConfigureServices看起来像这样
` public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddConnectionProvider(Configuration)
.ConfigureSupervisor()
.AddMiddleware()
.AddCorsConfiguration()
.ConfigureRepositories();
}`
当运行我的应用程序不能打我的API /后的路线。当我把在行动破发点并运行应用程序,断点称其“未验证”。我试图做的API /后和API /职位。在控制器类我删除路由[“控制器”]与控制器“后”的只是名字,但同样的事情。奇怪的是,我可以打API /值就好了,即使该控制器不再在我的应用程序存在。我不知道是怎么回事,有人可以提供一些线索请。
我升级从asp.net 2.1核心我的项目2.2当我执行干净再建。它并没有完全摆脱以前编译代码。我launch.json文件仍指向调试/ netcoreapp.2.1 ......改变之后,以2.2开始的一切工作正常。