我有一个ASP.NET应用程序,我有不同的控制器。我在 RouteConfig 中更改了路径:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"SpecificRoute",
"{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional });
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Error", action = "NotFound", id = UrlParameter.Optional }
HomeController 中的所有页面都正常运行。我找到他们的一种方法是使用ActionLink:
@Html.ActionLink("Index Page", "Index", "Home")
这样可行,即使其他方式与上下文一样:“ example ”,“Home”。
当我选择其他控制器时出错了,让我们说:
@Html.ActionLink("GoToErrorPage", "NotFound", "Error") // error page
此链接的结果是它只是连接到主页。它没有进入正确的页面。
我想用以下网址连接所有页面(在其他控制器中):
原始网址的样子(在 RouteConfig 中更改之前)
如何配置 RouteConfig ?
如何设置它,我不需要在之前键入控制器 网址中的操作?
答案 0 :(得分:1)
您的路线实际上都是相同的,因为它们都匹配任何包含2个段的网址。如果您希望能够在不指定控制器名称的情况下导航到方法,则需要为每个方法创建特定路由。例如,如果您要导航到Request(int? id)
的{{1}}方法,HomeController
或../Request
则需要
../Request/1
并且该路线必须放在默认路线
之前然后在视图中routes.MapRoute(
"Request",
"Request/{id}",
new { controller = "Home", action = "Request", id = UrlParameter.Optional }
);
将生成@Html.ActionLink("Request Page", "Request", "Home")
的网址并转到../Request
的{{1}}方法