gpt4 book ai didi

c# - 使用常规映射路由的属性路由是否有意义

转载 作者:太空宇宙 更新时间:2023-11-03 10:26:10 25 4
gpt4 key购买 nike

我们有许多 2 个项目的 web api 解决方案。一个项目设置 Web API 配置内容,另一个项目包含 Controller 。

每个 web api 配置都是这样设置的:

    config.MapHttpAttributeRoutes();

config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);

当我们在每个 Controller / Action 上使用 Route/Prefix-Attributes 时,我问自己 config.Routes.MapHttpRoute 方法调用是否仍然有效?

实际上,只要我在 Controller 上注释路由属性,至少我就会覆盖 web api 的约定行为。因此该方法调用已过时。

这样对吗?或者还有什么要考虑的,因为我想在每个项目中删除这个方法调用。

最佳答案

仍将应用基于约定的路由。您的基于属性的路由将优先(因为它们首先配置)但是如果操作方法同时具有匹配的属性路由常规路由,两个路由将映射到操作有问题。

如果您只想使用基于属性的路由,移除基于约定的路由映射可能是明智之举,以防止意外行为(即在非预期路由下暴露操作)。

当然,您首先要确保没有无意中依赖基于约定的路由!

关于c# - 使用常规映射路由的属性路由是否有意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31549483/

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