簡體   English   中英

ASP.NET Core 中 Api 控制器和視圖控制器的單獨文件夾

[英]Separate folder for Api controllers and View controllers in ASP.NET Core

我正在嘗試采用現有的 .NET 6 ASP.NET Core 項目,並從視圖邏輯中分離出一些數據邏輯。 我有一堆視圖控制器,它們也充滿了數據端點,我想將它們移到單獨的控制器中。 我正在嘗試逐步執行此操作(因為它是一個大型項目),而無需進行完全轉換。

最終目標是縮小視圖控制器的大小並組合視圖控制器之間的一些共享端點,以便數據專門來自 api 端點而不是視圖控制器正在路由的根端點。

我目前試圖開始工作的文件夾結構是這樣的:

Controllers
-> Api
--> Data1Controller
-> View1Controller

我無法弄清楚如何為 Api 子文件夾中的所有控制器獲取路由設置。

編輯:

我嘗試使用區域來做到這一點,但仍然無法讓它工作:

program.cs中的路由代碼:

app.UseRouting();
app.MapAreaControllerRoute("Api", "Api", "Api/{controller}/{action}/{id?}");
app.MapDefaultControllerRoute();

我用 Api Area 設置了一個簡單的控制器(DataController),/api/data 返回 404

你可以保持

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

在您的 api 控制器上添加[Route("api/[controller]/[action]/{id?}")] ,它會運行良好。

我測試如下: 在此處輸入圖像描述

另外,你可以試試

 app.MapControllerRoute(
        name: "default",
        pattern: "~/api/{controller}/{action}/{id?}",
        new { controller = "...", action = "...." });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM