在控制台应用程序的ASP.NET Core中找不到控制器

时间:2018-08-28 10:22:21

标签: asp.net-core asp.net-core-webapi

我正在尝试获得一个简单的asp.net核心投影集,该投影集仅具有基本配置和控制器正常工作,但到目前为止没有任何效果。我确实使用了Web模板项目中的代码来创建一个新的控制台项目,但是没有找到控制器。

这是到目前为止该项目的样子:

Project structure

Console output

Route not found

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();
}

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        app.UseMvc();
    }
}

[ApiController]
public class TestController : ControllerBase
{
    [HttpGet]
    [Route("Test")]
    public ActionResult<string> Get()
    {
        return "Hello world!";
    }
}

//appsettings.json
{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*"
}

我在这里遗漏了一些非常明显的东西,但无法弄清楚,欢迎您提供任何帮助。

谢谢

更新1

As per comment, trying http://localhost:5000/test/get

更新2

As per Damir's comment

2 个答案:

答案 0 :(得分:1)

@marco

只需将Route添加到您的控制器,应该类似于

[Route("api/[controller]")]
[ApiController]
public class TestController : ControllerBase
{
    [HttpGet]
    [Route("Test")]
    public ActionResult<string> Get()
    {
        return "Hello world!";
    }
}

和url看起来像: https://localhost:5001/api/test/test

更新:

添加了屏幕截图

enter image description here

答案 1 :(得分:0)

我没有注意,但是我对其中一个依赖项发出了警告,再次添加它们后,我的原始代码可以正常工作了,谢谢。

Added dependencies