我用ASP.NET MVC创建了一个网站。我有一些静态页面,我目前通过名为Home的单个控制器提供服务。这会创建一些相当丑陋的URL。
example.com/Home/About
example.com/Home/ContactUs
example.com/Home/Features
你明白了。我宁愿不必为每一个创建一个控制器,因为操作只是调用View而没有传入模型。
有没有办法编写路由规则,从URL中删除控制器?我希望它看起来像:
example.com/About
example.com/ContactUs
example.com/Features
如果没有,这种情况通常如何处理?我想我不是第一个参与其中的人。
答案 0 :(得分:2)
以下是我之前所做的事情,使用约束来确保快捷方式不与其他路由规则冲突:
routes.MapRoute(
"HomeShortcuts",
"{action}",
new { controller = "Home", action = "Index" },
new { action = "Index|About|ContactUs|Features" }
);
答案 1 :(得分:1)
在新语句中添加控制器名称的默认值。您不必在网址中包含{controller}。