html.routelink不去指定路线
html.routelink does not go to specified route
我有一堆路线定义为:
routes.MapRoute(
name: "ID",
url: "{category}/{subcategory}/{lowercategory}/{lowercategory1}/{id}/{ignore}",
defaults: new { controller = "Home", action = "Index", ignore = UrlParameter.Optional }
);
routes.MapRoute(
name: "LowerCategory1",
url: "{category}/{subcategory}/{lowercategory}/{lowercategory1}",
defaults: new { controller = "Home", action = "Index" }
);
routes.MapRoute(
name: "LowerCategory",
url: "{category}/{subcategory}/{lowercategory}",
defaults: new { controller = "Home", action = "Index" }
);
routes.MapRoute(
name: "Subcategory",
url: "{category}/{subcategory}",
defaults: new { controller = "Home", action = "Index" }
);
routes.MapRoute(
name: "Category",
url: "{category}",
defaults: new { controller = "Home", action = "Index" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
现在我使用 routeLink 访问默认路由,但它不起作用。
@Html.RouteLink("Create Ad", "Default", new { controller="Electronics",action="Details" })
请求转到家庭控制器索引函数。我做错了什么。如何使用 routeLink 以便请求应该转到默认路由。
我也有这个问题。
似乎代码调用了带有签名的 RouteLink 重载
RouteLink(string linkText, object routeValues, object htmlAttributes)
这意味着 routeName 永远不会使用此重载设置,并且很可能您会得到一个具有空 href 属性的锚元素或使用默认控制器和操作生成的 link,因为 routeValues 也未设置为什么你期待。
我们想实际调用这个重载
RouteLink(string linkText, string routeName, object routeValues)
这可以通过使用如下命名参数来确保:
@Html.RouteLink("Create Ad", routeName: "Default", routeValues: new { controller="Electronics",action="Details" })
我有一堆路线定义为:
routes.MapRoute(
name: "ID",
url: "{category}/{subcategory}/{lowercategory}/{lowercategory1}/{id}/{ignore}",
defaults: new { controller = "Home", action = "Index", ignore = UrlParameter.Optional }
);
routes.MapRoute(
name: "LowerCategory1",
url: "{category}/{subcategory}/{lowercategory}/{lowercategory1}",
defaults: new { controller = "Home", action = "Index" }
);
routes.MapRoute(
name: "LowerCategory",
url: "{category}/{subcategory}/{lowercategory}",
defaults: new { controller = "Home", action = "Index" }
);
routes.MapRoute(
name: "Subcategory",
url: "{category}/{subcategory}",
defaults: new { controller = "Home", action = "Index" }
);
routes.MapRoute(
name: "Category",
url: "{category}",
defaults: new { controller = "Home", action = "Index" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
现在我使用 routeLink 访问默认路由,但它不起作用。
@Html.RouteLink("Create Ad", "Default", new { controller="Electronics",action="Details" })
请求转到家庭控制器索引函数。我做错了什么。如何使用 routeLink 以便请求应该转到默认路由。
我也有这个问题。 似乎代码调用了带有签名的 RouteLink 重载
RouteLink(string linkText, object routeValues, object htmlAttributes)
这意味着 routeName 永远不会使用此重载设置,并且很可能您会得到一个具有空 href 属性的锚元素或使用默认控制器和操作生成的 link,因为 routeValues 也未设置为什么你期待。
我们想实际调用这个重载
RouteLink(string linkText, string routeName, object routeValues)
这可以通过使用如下命名参数来确保:
@Html.RouteLink("Create Ad", routeName: "Default", routeValues: new { controller="Electronics",action="Details" })