为什么第二个控制器在 asp.net webApi 中不起作用?
Why second controller doesn't work in asp.net webApi?
我想在我的 asp.net WebApi 中添加第二个控制器,但是当我添加它时它不起作用...第一个控制器工作正常
我的浏览器没有找到 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;
}
}
}
谁能告诉我怎么了?
您正在控制器 class 上使用属性 [Route("[controller]")]
。字符串 [controller]
表示“class 的名称, 没有实际的单词“Controller”。
这意味着,控制器的名称是“Values”(或前一个控制器的“WeatherForecast”)。
因此,您想要的最终 url 路线是 /Values
,而不是 /ValuesController
。
您可以在 MS Docs page 上阅读更多关于它如何工作的信息(整个页面有很多有用的信息,而不仅仅是那个部分)。
我想在我的 asp.net WebApi 中添加第二个控制器,但是当我添加它时它不起作用...第一个控制器工作正常
我的浏览器没有找到 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;
}
}
}
谁能告诉我怎么了?
您正在控制器 class 上使用属性 [Route("[controller]")]
。字符串 [controller]
表示“class 的名称, 没有实际的单词“Controller”。
这意味着,控制器的名称是“Values”(或前一个控制器的“WeatherForecast”)。
因此,您想要的最终 url 路线是 /Values
,而不是 /ValuesController
。
您可以在 MS Docs page 上阅读更多关于它如何工作的信息(整个页面有很多有用的信息,而不仅仅是那个部分)。