Aspnetcore: Bisakah saya menggunakan Area di proyek API web inti Asp.net?

Dibuat pada 19 Jan 2019  ·  3Komentar  ·  Sumber: dotnet/aspnetcore

Saya sedang mengerjakan proyek yang merupakan proyek API web inti Asp.net. sebagian besar proyek saya dilakukan oleh Asp.net MVC dan Core MVC, tetapi saya akan melakukan proyek baru berdasarkan Core Web API. di Core MVC kami memiliki konsep Area bahwa kami dapat membuat Area untuk bagian Admin, dll .... Tapi saya ingin tahu Bisakah kami menggunakan Area di Proyek Web API inti Asp.net? Jika ya bagaimana saya bisa melakukannya? Jika Anda berpikir tentang ada cara yang lebih baik, tolong beri tahu saya.

area-mvc

Komentar yang paling membantu

Anda dapat menempatkan pengontrol API Anda di Area, hanya untuk mengelompokkannya. Tetapi pada dasarnya Anda menyediakan rute pada pengontrol, sehingga Anda dapat membuat rute yang berbeda sendiri:
[Route("api/myarea/v1/[controller]")]

Semua 3 komentar

Anda dapat menempatkan pengontrol API Anda di Area, hanya untuk mengelompokkannya. Tetapi pada dasarnya Anda menyediakan rute pada pengontrol, sehingga Anda dapat membuat rute yang berbeda sendiri:
[Route("api/myarea/v1/[controller]")]

Saya memiliki masalah yang sama dengan yang saya coba dengan meletakkan ApiController saya di bawah area saya sehingga strukturnya terlihat seperti di bawah ini

Ini adalah pengontrol Api di dalamnya

Area/GL/Pengontrol

[Area("GL")] [Route("api/[controller]")] [ApiController] [HttpGet] public IActionResult Get() { return Ok("api controller"); }

Tetapi ketika saya mengakses URL saya
http://localhost :48357/GL/Api/Get
Atau
http://localhost :48357/Api/GL/Get
atau
http://localhost :48357/Api/Get
saya mendapat

Kode Status: 404; Tidak ditemukan

Ini kode di

Startup.cs

routes.MapAreaRoute( name: "AreaGL", areaName: "GL", template: "GL/{controller=Home}/{action=Index}/{id?}" );

Tolong bantu saya tentang masalah ini, apa yang saya lakukan salah di sini?

Terima kasih telah menghubungi kami, @farhadibehnam.
Agar pengontrol berada di area, Anda harus menerapkan batasan rute {area:exists} di rute atribut Anda, seperti yang dijelaskan https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas? lihat=aspnetcore-2.2.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat