查看 .NET 6 中的專案模板之一,我可以看到:
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
// ...
[HttpGet]
public IEnumerable<WeatherForecast> Get()
{
該Get方法可以通過呼叫來呼叫/weatherforecast,但我不明白為什么。不/weatherforecast/get應該是正確的網址嗎?默認的控制器操作方法應該是Index. 為什么它有效?
uj5u.com熱心網友回復:
因為您[HttpGet]在方法中添加了屬性。
https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-6.0#verb6
uj5u.com熱心網友回復:
您說的是 ApiController,這意味著它是通過 http 請求創建的。
該[HttpGet]屬性指定您希望通過 HTTP GET 公開此方法。
如果你做某事[HttpGet("my-method")] ,端點將是/api/<controllername>/my-method
因此,如果您想要網址,則/weatherforecast/get必須將其指定為
[HttpGet("get")]
public IEnumerable<WeatherForecast> Get()
{}
微軟網站上有很好的解釋
uj5u.com熱心網友回復:
如下更改第 2 行以獲得您想要的
[ApiController]
//Change this line
//[Route("[controller]")]
//Like
[Route("[controller]/[action]")]
public class WeatherForecastController : ControllerBase
{
// ...
[HttpGet]
public IEnumerable<WeatherForecast> Get()
{
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/490301.html
