如何在同一个 .net core 3 应用程序中使用剃刀页面和控制器?

How to use razor pages and controllers in the same .net core 3 app?

这里是启动配置的代码

public void ConfigureServices(IServiceCollection services) {
  services.AddControllers();
  services.AddRazorPages();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {
    app.UseEndpoints(endpoints => {
        endpoints.MapRazorPages();
        endpoints.MapControllers();
    });
}

我想将所有控制器映射到“/api”下,并将其他所有内容映射到剃刀页面。我在网上搜索了很多,但似乎找不到我要找的东西。

你看过了吗?

http://www.binaryintellect.net/articles/e6557104-d06a-418c-a1a9-b8ce248f60b1.aspx

看起来可以做到。你只是不会打电话给 services.AddRazorPages();

让我知道你认为这有什么问题或者它是否有效。

你的 startup.cs 没有问题。如果你想将所有 /api 映射到你的控制器,那么只需使用属性路由装饰你的 api 控制器,例如:

[ApiController]
[Route("/api/[controller]")]
public class WeatherForecastController : ControllerBase

然后在您的项目中创建一个 Pages 文件夹,其中包含 Razor Pages。