Asp.net mvc 在ASP.NET MVC中使用路由规则避免控制器
我已经用ASP.NETMVC创建了一个网站。我有许多静态页面,我目前通过一个名为Home的控制器提供服务。这会创建一些相当丑陋的URLAsp.net mvc 在ASP.NET MVC中使用路由规则避免控制器,asp.net-mvc,url-routing,asp.net-mvc-routing,Asp.net Mvc,Url Routing,Asp.net Mvc Routing,我已经用ASP.NETMVC创建了一个网站。我有许多静态页面,我目前通过一个名为Home的控制器提供服务。这会创建一些相当丑陋的URL example.com/Home/About example.com/Home/ContactUs example.com/Home/Features 你明白了。我不希望为每一个操作都创建一个控制器,因为这些操作只是调用视图,而没有传递任何模型 有没有办法编写一个路由规则,将控制器从URL中删除?我希望它看起来像: example.com/About ex
example.com/Home/About
example.com/Home/ContactUs
example.com/Home/Features
你明白了。我不希望为每一个操作都创建一个控制器,因为这些操作只是调用视图,而没有传递任何模型
有没有办法编写一个路由规则,将控制器从URL中删除?我希望它看起来像:
example.com/About
example.com/ContactUs
example.com/Features
如果没有,这种情况通常如何处理?我想我不是第一个遇到这种情况的人。在新语句中为控制器名称添加默认值。url中不必有{controller}。以下是我之前所做的,使用约束确保快捷方式不与其他路由规则冲突:
routes.MapRoute(
"HomeShortcuts",
"{action}",
new { controller = "Home", action = "Index" },
new { action = "Index|About|ContactUs|Features" }
);
也许我有点糊涂,但我不明白这个答案。你能扩展一下吗?Cantabiliesoftware在下面添加了一个例子