gpt4 book ai didi

asp.net-mvc - 是否可以限制特定 Controller namespace 的路径?

转载 作者:行者123 更新时间:2023-12-02 20:01:41 25 4
gpt4 key购买 nike

我有一些 Controller ,我想将它们限制在路径 /api/ 上,如下所示:

server.com/api/Load/Test

为此,我设置了此路由:

routes.MapRoute(
name: "ApiDefault",
url: "api/{controller}/{action}/",
namespaces: new string[] { "Framework.ApiControllers" }
);

当然,上面的 url 可以工作,但是没有 /api/server.com/Load/Test 也可以,我真的希望 api Controller 只响应 /api/ 路径。

我该如何设置?

最佳答案

一个简单的解决方案是将 API Controller 的基于约定的路由转变为属性路由。这意味着从路由配置中删除 api 路由并将路由直接添加到 Controller :

[Produces("application/json")]
[Route("api/Load")]
public class LoadController : Controller
{

}

如果您不想单独装饰每个 api Controller ,您可以创建一个 BaseApiController,每个 api Controller 都可以继承它:

[Route("api/[Controller]")]
public class BaseApiController : Controller
{
}

public class LoadController : BaseApiController
{
public IActionResult Test()
{
return Ok("foo");
}
}

关于asp.net-mvc - 是否可以限制特定 Controller namespace 的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49172587/

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