【问题标题】:Using MVC asp-controller helper in Razor pages - what is best practice?在 Razor 页面中使用 MVC asp-controller helper - 最佳实践是什么?
【发布时间】:2021-07-07 10:02:55
【问题描述】:

我正在转换一些 MVC 示例代码以在我正在构建的 Razor 页面应用程序中使用。在原始 MVC 代码中,一些链接使用以下 asp 助手(例如):

<a asp-controller="Home" asp-action="Preview" asp-route-id="option">A link</a>

在原始 MVC 代码中定义了一个 HomeController 控制器类。

如果我在“页面”文件夹下名为“主页”的目录中有一个名为“预览”的页面,我可以让它在我的 Razor 页面应用程序中工作。然后我使用@pages 指令映射路线

@page "{option}"

在“Preview.cshtml”页面的顶部,并将字符串传递给 Preview.cshtml.cs 文件中 PreviewModel 的类定义中的 OnGet 方法。

这工作正常,但这是我应该做的吗? Razor 页面应用程序中没有 HomeController,那么是否有最佳实践 Razor 页面方法来执行此操作?

【问题讨论】:

    标签: asp.net-mvc razor-pages


    【解决方案1】:

    您不能依靠控制器和动作的组合来始终生成正确的路线。您应该将标签助手更改为使用 asp-page 属性。

    <a asp-page="/Home/Preview" asp-route-id="option">A link</a>
    

    在此处(我的网站)查看有关 Razor 页面中路由的更多信息:https://www.learnrazorpages.com/razor-pages/routing

    【讨论】:

    • 谢谢,有道理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多