Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在ASP.NET MVC中使用路由规则避免控制器_Asp.net Mvc_Url Routing_Asp.net Mvc Routing - Fatal编程技术网

Asp.net mvc 在ASP.NET MVC中使用路由规则避免控制器

Asp.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

我已经用ASP.NETMVC创建了一个网站。我有许多静态页面,我目前通过一个名为Home的控制器提供服务。这会创建一些相当丑陋的URL

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在下面添加了一个例子