MVCCRUD操作のプレフィックス付きルーティングを作成する方法。管理者とフロントエンドを必要とするアプリケーションに取り組んでいます。管理者の場合、すべてのルートがlocalhost:5000/admin/....
を指すようにします
私は別のコントローラーを持っています
public class RoomsController : Controller
{
// GET: Rooms
public async Task<IActionResult> Index()
{
return View(await _context.Rooms.ToListAsync());
}
//...
}
そして
public class SlidersController : Controller
{
private readonly ApplicationDbContext _context;
public SlidersController(ApplicationDbContext context)
{
_context = context;
}
// GET: Sliders
public async Task<IActionResult> Index()
{
return View(await _context.Sliders.ToListAsync());
}
//...
}
今、私は管理ルートを
localhost:5000/admin/rooms
localhost:5000/admin/slider
他のルートが残っている間
localhost:5000/
localhost:5000/about
localhost:5000/...
MVCエリアを使用して問題を解決します docs
これには、属性ルーティングを使用することもできます。 ASP.Net Web APIまでは、[RoutePrefix]という名前の属性がありますが、ASP.Net Core 2では、同じ目的で[Route]属性を使用できます。
[Route("api/[controller]/[action]")]
public class DistrictController : ControllerBase
{
[Route("{id:int:min(1)}")] // i.e. GET /api/District/GetDetails/10
public IActionResult GetDetails(int id)
{
}
// i.e. GET /api/District/GetPage/?id=10
public IActionResult GetPage(int page)
{
}
[HttpDelete]
[Route("{id:int:min(1)}")] // i.e. Delete /api/District/Delete/10
public IActionResult Delete(int id)
{
}
[HttpGet]
[Route("~/api/States/GetAllState")] // i.e. GET /api/States/GetAllState
public IActionResult GetStates()
{
}
}