gpt4 book ai didi

c# - 路由到 Razor 页面应用程序中的 ApiController?

转载 作者:太空狗 更新时间:2023-10-29 21:42:52 26 4
gpt4 key购买 nike

我创建了一个 ASP.NET Core Razor 页面应用程序(asp.net 版本 2.1.1)。它适用于普通页面,但我也想要一个 ApiController,如本教程所示: https://learn.microsoft.com/en-us/aspnet/core/tutorials/web-api-vsc?view=aspnetcore-2.1

但是,当我像上面的示例一样创建我的 Controller 时,每当我尝试访问它时,我都会收到一个 404 页面。

启动类(class)中我缺少什么吗?

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

提前感谢您的帮助!

最佳答案

您需要有一个公共(public) Controller 类。

所以代替:

[Route("api/[controller]")]
[ApiController]
class DomainController : ControllerBase
{
[...]
}

你应该有这个:

[Route("api/[controller]")]
[ApiController]
public class DomainController : ControllerBase // <-- add a public keyword
{
[...]
}

关于c# - 路由到 Razor 页面应用程序中的 ApiController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51031459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com