这个问题可能会更早提出,因此可以重复。
当我们配置 ASP.NET 核心应用程序 (MVC) 时,我们在 Startup.cs 下定义和映射路由 - 配置 - app.useMvc()
.这非常有效。
但是,当 WebAPI 出现时,为什么我们需要指定 [Route("api/[controller]")
具体来说?换句话说,webAPI 只适用于属性路由?
为什么 Configure 方法不能处理这个路由配置?在早期的 MVC/WebAPI(非核心)中这是一个不错的选择。
我错过了什么吗?
最佳答案
在 ASP.NET Core MVC 中,MVC 和 Web API 之间没有区别(就像在 MVC 5/Web API 2 中一样)。无论请求是返回 View 还是其他类型的 ActionResult,路由都应该以相同的方式工作。也就是说,属性路由是 ASP.NET Core MVC 中的默认约定,因为它使路由逻辑更接近将响应路由的代码。您仍然可以在 Startup.Configure 中设置全局路由(如您所见),但传统的推荐方法是在 Controller 和/或操作级别使用属性。
如果您看到特定(web api)操作未使用您在全局设置的路由的行为,请发布代码(可能在另一个问题中),因为这对我来说听起来不像预期的行为.
关于asp.net-core - Asp.Net Core - MVC Vs Web API 路由区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42119466/