我将按照以下步骤构建我的网址:
/
(位于HomeController
)上的概述页面。/details/123
上的详细信息页面(而不是/home/details/123
)知道123始终是一个数字(在HomeController
上)。/info
而不是/home/info
(位于HomeController
)上的信息页。/account/signin
(位于AccountController
上)的登录页面。我的应用程序中没有更多页面。
我创建了两条路线,如下所示:
routes.MapRoute(
name: "Home",
url: "{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
问题在于“帐户”页面给出了404。其他页面正常工作。
我创建了一条如下所示的路线:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
在HomeController
内的每个方法上,都添加了带有正确URL的Route
属性。
现在的问题是,概述和登录页面可以正常工作,其他页面现在提供了404。
如何使用ASP.NET MVC从URL中删除主目录?
答案 0 :(得分:2)
要使用属性路由,您需要添加
routes.MapMvcAttributeRoutes();
到您的RouteConfig.cs文件。
它应该在您的默认路线之前。