使用 ASP.NET MVC 从 URL 中删除主目录
Remove home directory from the URL with ASP.NET MVC
情况
我将构建我的 URL 如下所示:
/
上的概览页面(在 HomeController
)。
/details/123
而不是 /home/details/123
上的详细信息页面知道 123 始终是一个数字(在 HomeController
)。
/info
上的信息页面,而不是 /home/info
(位于 HomeController
)。
/account/signin
上的登录页面(位于 AccountController
)。
我的申请没有更多页面了。
尝试 1
我创建了如下两条路线:
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。其他页面正常。
尝试 2
我创建了一条如下所示的路线:
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 中删除主目录?
要使用属性路由,您需要添加
routes.MapMvcAttributeRoutes();
到您的 RouteConfig.cs 文件。
它应该在您的默认路线之前。
情况
我将构建我的 URL 如下所示:
/
上的概览页面(在HomeController
)。/details/123
而不是/home/details/123
上的详细信息页面知道 123 始终是一个数字(在HomeController
)。/info
上的信息页面,而不是/home/info
(位于HomeController
)。/account/signin
上的登录页面(位于AccountController
)。
我的申请没有更多页面了。
尝试 1
我创建了如下两条路线:
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。其他页面正常。
尝试 2
我创建了一条如下所示的路线:
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 中删除主目录?
要使用属性路由,您需要添加
routes.MapMvcAttributeRoutes();
到您的 RouteConfig.cs 文件。
它应该在您的默认路线之前。