Я создал приложение на странице ASP.NET Core Razor (asp.net версия 2.1.1).Он отлично работает с обычными страницами, но я также хочу ApiController, как в этом уроке: https://docs.microsoft.com/en-us/aspnet/core/tutorials/web-api-vsc?view=aspnetcore-2.1
Однако, когда я создаю свой контроллер, как в примере выше, я получаю страницу 404 всякий раз, когда пытаюсьчтобы достичь этого.
Есть ли что-то, чего мне не хватает в классе запуска?
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddDbContext<DomainDbContext>(opt => opt.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseMvc();
}
И мой класс apicontroller:
[Route("api/[controller]")]
[ApiController]
class DomainController : ControllerBase
{
private readonly DomainDbContext _context;
public DomainController (DomainDbContext context)
{
_context = context;
}
[HttpGet]
public ActionResult<List<Domain>> GetAll()
{
return new List<Domain> {new Domain() {Name ="Hello", Tld = ".se", Expiration = DateTime.UtcNow.AddDays(35)}};
}
}
Все выглядит какнасколько я вижу, но, очевидно, что-то не так, так как я получаю 404 для всех страниц.Даже если я создаю новый метод, он не совсем работает должным образом и недоступен.
Основной путь, который я пробовал, это /api/domain
.
Спасибо за вашу помощь заранее!