繁体   English   中英

为什么第二个 controller 在 asp.net webApi 中不起作用?

[英]Why second controller doesn't work in asp.net webApi?

我想在我的 asp.net WebApi 中有第二个 controller,但是当我添加它时它不起作用...第一个 Controller 工作正常

我的浏览器中找不到 404

  • 运行时没有任何错误

怎么了?

namespace testing.Controllers
   {
    [ApiController]
    [Route("[controller]")]
    public class WeatherForecastController : ControllerBase
    {
        private static readonly string[] Summaries = new[]
        {
            "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering",           
   "Scorching"
        };

        private readonly ILogger<WeatherForecastController> _logger;

        public WeatherForecastController(ILogger<WeatherForecastController> logger)
        {
            _logger = logger;
        }

        [HttpGet]
        public IEnumerable<WeatherForecast> Get()
        {
            var rng = new Random();
            return Enumerable.Range(1, 5).Select(index => new WeatherForecast
            {
                Date = DateTime.Now.AddDays(index),
                TemperatureC = rng.Next(-20, 55),
                Summary = Summaries[rng.Next(Summaries.Length)]
            })
            .ToArray();
        }
    }
}

第二个在下面

{
    [Route("[controller]")]
    [ApiController]
    public class ValuesController : ControllerBase
    {
        [HttpGet]
        public int Get()
        {
            return 100050;
        }
    }
}

有人可以告诉我出了什么问题吗?

您在 controller class 上使用属性[Route("[controller]")] 字符串[controller]表示“class 的名称,没有实际的单词“Controller”

这意味着,controller 的名称是“Values”(或前一个控制器的“WeatherForecast”)。

因此,您想要的最终 url 路线是/Values ,而不是/ValuesController

您可以在MS Docs 页面上阅读有关其工作原理的更多信息(整个页面都有很多很好的信息,而不仅仅是那个部分)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM