Asp.net MVC + routelink只得到404错误
本文关键字:错误 routelink net MVC Asp | 更新日期: 2023-09-27 18:14:25
下面是我的代码:
RouteConfig.cs
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "snakes",
url: "snakes-databases/",
defaults: new { controller = "SnakesController", action = "index" }
);
routes.MapRoute(
name: "snakesLists",
url: "snakes-databases/{family}/",
defaults: new { controller = "SnakesController", action = "Lists", family = "" }
);
routes.MapRoute(
name: "snakesDetails",
url: "snakes-databases/{family}/{species}/",
defaults: new { controller = "SnakesController", action = "Details", family = "", species = "" }
);
routes.MapRoute(
name: "Default",
url: "",
defaults: new { controller = "Home", action = "Index" }
);
}
}
_Layout.cshtml
@Html.RouteLink("snakes database", "snakes", null, new { @class = "dropdown-toggle", data_toggle="dropdown"})
<ul class="dropdown-menu">
<li>@Html.RouteLink("Boidae", "snakesLists", new { family = "boidae" })</li>
<li>@Html.RouteLink("Colubridae", "snakesLists", new { family = "colubridae" })</li>
<li>@Html.RouteLink("Elapidae", "snakesLists", new { family = "elapidae" })</li>
<li>@Html.RouteLink("Viperidae", "snakesLists", new { family = "viperidae" })</li>
</ul>
SnakeController.cs:
public ActionResult Lists(string family)
{
return View();
}
我不明白为什么每个url除了主页(/)我得到一个404错误。
哦,你不需要设置:
controller = "SnakesController"
只设置为:
controller = "Snakes"
所有是: routes.MapRoute(
name: "snakes",
url: "snakes-databases/",
defaults: new { controller = "Snakes", action = "index" }
);
routes.MapRoute(
name: "snakesLists",
url: "snakes-databases/{family}/",
defaults: new { controller = "Snakes", action = "Lists", family = "" }
);
routes.MapRoute(
name: "snakesDetails",
url: "snakes-databases/{family}/{species}/",
defaults: new { controller = "Snakes", action = "Details", family = "", species = "" }
);
希望能帮到你
你没有定义你的动作,对于主页你不需要这样做,因为那是默认的索引动作。
routes.MapRoute(
name: "snakes",
url: "snakes-databases/{index}",
defaults: new { controller = "SnakesController", action = "Index" }
);
routes.MapRoute(
name: "snakesLists",
url: "snakes-databases/{Lists}/{family}/",
defaults: new { controller = "SnakesController", action = "Lists", family = "" }
);
routes.MapRoute(
name: "snakesDetails",
url: "snakes-databases/{Details}/{family}/{species}/",
defaults: new { controller = "SnakesController", action = "Details", family = "", species = "" }
);