如何从视图调用 MVC 路由

本文关键字:MVC 路由 调用 视图 | 更新日期: 2023-09-27 18:30:22

>我遇到了在当前URL上添加URL的问题,例如:本地主机/配置 -> 本地主机/配置/配置文件通过调用@Html.ActionLink(Resources.General.Achievements, "Index", "Profile")

当我真正想要的是:本地主机/配置文件

我知道使用 MVC 路由可以做到这一点,但我只是不知道如何从视图中调用它们。我使用了 Html.BeginRouteForm,但此路由不会在提交时触发。

这是我的路由配置

routes.MapRoute(
            name: "Profile",
            url: "Profile/{id}",
            defaults: new { controller = "Profile", action = "Index" },
            namespaces: new[] { "Cobalt.Controllers" }
            );
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
            namespaces: new[] { "Cobalt.Controllers" }
            );

我正在尝试访问根目录中的配置文件控制器和索引操作。我同时拥有配置和管理区域,在回调根目录中的控制器时,我试图从中转义。

提前感谢您的任何帮助

如何从视图调用 MVC 路由

处理区域时,如果要从一个区域移动到另一个区域或从区域移动到根区域,可以使用 ActionLink 的重载,它允许您指定路由数据并将空字符串(或适当的区域名称)传递到区域:

@Html.ActionLink(Resources.General.Achievements, "Index", "Profile", new { area = string.Empty })

使用 RouteLink:

@Html.RouteLink(Resources.General.Achievements, "Profile", new { id = "1234" })

请注意,由于您的"id"参数未在配置文件路由上声明为可选参数,因此除非您提供它,否则它不会匹配。