Net5 剃须刀页面与 mvc

Net5 razor pages vs mvc

我是 net5 框架的新手,对项目的结构有一些疑问。 当我们创建一个新项目时,它只会创建剃刀页面。我正在学习我们可以用这些剃刀页面来实现目标。 同时,我查看了 GitHub 上的一些开源 net5 项目,发现它们也在使用 MVC。 那么,我的问题是为什么我们需要 MVC 呢?如果一切都使用 razor pages 实现,那么还需要 MVC 吗? 如果我们需要 MVC,那么我们是否也应该对它们使用 razor 页面? 我已经使用脚手架完成了剃须刀页面的身份工作。如果我将 MVC 添加到我的项目中,现在会发生什么。我将如何管理从 razor 页面到 MVC 的路由和页面重定向,反之亦然? 请帮我解决这个问题,这样我就可以清楚我的概念了。 我将非常感谢那些向我解释情况的人。 谢谢

首先,.NET 5 不再受支持。您应该改用 .NET 6。

Razor Pages 代表了一种比 MVC 更简单的在服务器上生成 HTML 的方法。建议所有依赖 server-side HTML 生成的新 Web 应用程序继续使用。 MVC 仍然可用于现有应用程序。在移植到 .NET Core 时,将旧的 MVC 5 (.NET Framework) 应用程序迁移到 ASP.NET Core MVC 也可能更容易。

Razor Pages 建立在 MVC 框架之上,并依赖于 MVC 的许多功能,例如 model binding, action results 等。

如果您使用的是 Razor Pages,则没有令人信服的理由在同一项目中也使用 MVC,尽管您可以。如果这样做,则需要注册控制器端点:

app.MapControllers();

如果您想要创建 HTTP 服务 API,您可能需要将控制器添加到您的项目中,尽管您可以改用添加到 .NET 6 的最小 API 功能:

https://www.mikesdotnetting.com/article/358/using-minimal-apis-in-asp-net-core-razor-pages

Razor Pages can make coding page-focused scenarios easier and more productive than using controllers and views.

https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-6.0&tabs=visual-studio