【发布时间】:2019-11-25 11:57:28
【问题描述】:
我正在尝试获取 api 调用。所以我启动 Visual Studio 并在邮递员中输入:
http://localhost:51266/api/country
我在方法上设置了一个断点。但什么也没有发生。我得到一个 404 未找到。
这是控制器:
[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);
}
}
我在这里做错了什么?
我在Startup 中有这个:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
var connectionString = Configuration["connectionStrings:bookDbConnectionString"];
services.AddDbContext<BookDbContext>(c => c.UseSqlServer(connectionString));
services.AddScoped<ICountryRepository, CountryRepository>();
}
我现在是这样的:
[ApiController]
public class CountryController : Controller
{
private ICountryRepository countryRepository;
public CountryController(ICountryRepository repository)
{
this.countryRepository = repository;
}
[HttpGet]
[Route("api/[controller]")]
public IActionResult GetCountries()
{
var countries = countryRepository.GetCountries().ToList();
return Ok(countries);
}
}
还有我的创业班:
public class Startup
{
public static IConfiguration Configuration { get; set; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
var connectionString = Configuration["connectionStrings:bookDbConnectionString"];
services.AddDbContext<BookDbContext>(c => c.UseSqlServer(connectionString));
services.AddScoped<ICountryRepository, CountryRepository>();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, BookDbContext context)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
}
}
如果我这样做:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, BookDbContext context)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
//app.UseRouting();
app.UseMvc();
}
我收到此警告:
警告 MVC1005
使用端点路由时不支持使用“UseMvc”配置 MVC。要继续使用“UseMvc”,请在“ConfigureServices”中设置“MvcOptions.EnableEndpointRouting = false”。 WebApplication2 D:\Mijn Documents\VisualStudio_2019\WebApplication2\WebApplication2\Startup.cs
【问题讨论】:
-
Configure中有app.UseMvc()吗? -
冒着听起来非常愚蠢的风险,您是否正在运行代码?您提到您只启动 Visual Studio。
-
?是的,当然 f5
标签: c# rest asp.net-core asp.net-web-api postman