gpt4 book ai didi

c# - Asp.net core 2前缀路由

转载 作者:太空狗 更新时间:2023-10-29 21:43:03 24 4
gpt4 key购买 nike

如何为 MVC CRUD 操作创建前缀路由。我正在开发一个需要管理员和前端的应用程序。对于管理员,我希望所有路由都指向 localhost:5000/admin/....

我有不同的 Controller

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/...

最佳答案

您也可以为此使用属性路由。在 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()
{
}
}

关于c# - Asp.net core 2前缀路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47924170/

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