3 回答
TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
解決方案是這樣的:
public void ConfigureServices(IServiceCollection services) {
services.AddMvc();
services.AddControllers(); //added this
var connectionString = Configuration["connectionStrings:bookDbConnectionString"];
services.AddDbContext<BookDbContext>(c => c.UseSqlServer(connectionString));
services.AddScoped<ICountryRepository, CountryRepository>();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, BookDbContext context) {
if (env.IsDevelopment()) {
app.UseDeveloperExceptionPage();
}
app.UseRouting(); //uncommented
app.UseAuthorization(); //added this
app.UseEndpoints(endpoints => { //added this
endpoints.MapControllers();
});
//removed the app.UseMvc(); line
}
TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
結(jié)合不同的方法來(lái)實(shí)現(xiàn)這一目標(biāo)
[Route("api/country")]
[ApiController]
public class CountryController : Controller
{
private ICountryRepository countryRepository;
public CountryController(ICountryRepository repository)
{
this.countryRepository = repository;
}
[HttpGet]
public IActionResult GetCountries()
{
var countries = countryRepository.GetCountries().ToList();
return Ok(countries);
}
}
或者
[Route("api/[controller]")]
[ApiController]
public class CountryController : Controller
{
private ICountryRepository countryRepository;
public CountryController(ICountryRepository repository)
{
this.countryRepository = repository;
}
[HttpGet("")]
public IActionResult GetCountries()
{
var countries = countryRepository.GetCountries().ToList();
return Ok(countries);
}
}
我最喜歡這個(gè),我認(rèn)為它是最直觀的
[Route("api")]
[ApiController]
public class CountryController : Controller
{
private ICountryRepository countryRepository;
public CountryController(ICountryRepository repository)
{
this.countryRepository = repository;
}
[HttpGet("country")]
public IActionResult GetCountries()
{
var countries = countryRepository.GetCountries().ToList();
return Ok(countries);
}
}
如果這些都不起作用,那是因?yàn)槟鷽](méi)有在 中的 方法中調(diào)用 app.UseMVcConfigureStartup.cs
TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊
問(wèn)題是路線,必須繼續(xù)行動(dòng)
[HttpGet]
[Route("api/[controller]")]
public IActionResult GetCountries()
或者,您可以將路由保留在控制器上,然后將一個(gè)空路由添加到操作中:
[Route("")]
- 3 回答
- 0 關(guān)注
- 266 瀏覽
添加回答
舉報(bào)
