在 Razor 页面中使用 MVC asp-controller helper - 什么是最佳实践?
Using MVC asp-controller helper in Razor pages - what is best practice?
我正在转换一些 MVC 示例代码以用于我正在构建的 Razor 页面应用程序。在原始 MVC 代码中,一些链接使用以下 asp 帮助程序(例如):
<a asp-controller="Home" asp-action="Preview" asp-route-id="option">A link</a>
在原始 MVC 代码中定义了一个 HomeController
控制器 class。
如果我在 'Pages' 文件夹下名为 'Home' 的目录中有一个名为 'Preview' 的页面,我可以在我的 Razor 页面应用程序中使用它。然后我使用 @pages 指令 puting
映射路线
@page "{option}"
在 'Preview.cshtml' 页面的顶部,并将字符串传递给 Preview.cshtml.cs 文件中 PreviewModel
的 class 定义中的 OnGet
方法.
这工作正常,但这是我应该做的吗? Razor 页面应用程序中没有 HomeController
,那么 Razor 页面是否有执行此操作的最佳实践方法?
您不能依赖控制器和动作的组合来始终生成正确的路线。您应该更改标签助手以改为使用 asp-page 属性。
<a asp-page="/Home/Preview" asp-route-id="option">A link</a>
在此处(我的站点)查看有关 Razor Pages 中路由的更多信息:https://www.learnrazorpages.com/razor-pages/routing
我正在转换一些 MVC 示例代码以用于我正在构建的 Razor 页面应用程序。在原始 MVC 代码中,一些链接使用以下 asp 帮助程序(例如):
<a asp-controller="Home" asp-action="Preview" asp-route-id="option">A link</a>
在原始 MVC 代码中定义了一个 HomeController
控制器 class。
如果我在 'Pages' 文件夹下名为 'Home' 的目录中有一个名为 'Preview' 的页面,我可以在我的 Razor 页面应用程序中使用它。然后我使用 @pages 指令 puting
映射路线@page "{option}"
在 'Preview.cshtml' 页面的顶部,并将字符串传递给 Preview.cshtml.cs 文件中 PreviewModel
的 class 定义中的 OnGet
方法.
这工作正常,但这是我应该做的吗? Razor 页面应用程序中没有 HomeController
,那么 Razor 页面是否有执行此操作的最佳实践方法?
您不能依赖控制器和动作的组合来始终生成正确的路线。您应该更改标签助手以改为使用 asp-page 属性。
<a asp-page="/Home/Preview" asp-route-id="option">A link</a>
在此处(我的站点)查看有关 Razor Pages 中路由的更多信息:https://www.learnrazorpages.com/razor-pages/routing