asp.net-core - Asp.Net Core - MVC Vs Web API 路由区别

标签 asp.net-core asp.net-core-mvc

这个问题可能会更早提出,因此可以重复。

当我们配置 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/

相关文章:

angular - 从源访问 XMLHttpRequest 已被 CORS 策略 : No 'Access-Control-Allow-Origin' header is present on the requested resource 阻止

c# - 使用 Twilio .netcore Blazor 服务器端发送短信通知

c# - 错误处理(发送 ex.Message 给客户端)

c# - 如何将字符串传递给 Angular 中的发布请求?

asp.net - ASP .NET Core - Linux nginx ASPNETCORE_ENVIROMENT 错误

c# - 最佳实践 如何使用 .net CORE 隔离动态代码/程序集

visual-studio - 为什么 Visual Studio 中的 csproj 文件没有获取最新版本的 .NET 6.0 和 .NET 7.0

c# - 如何在 ASP.NET Core Razor Pages 中为单页应用程序创建包罗万象的路由?

c# - Json Controller 方法中的空参数,而 Jquery 参数具有值

c# - 使用 IConfigurationRoot 将应用程序的连接字符串向下传递到 ASP.NET 5 中的存储库类库