Asp.net 如何始终使用控制器+;url中的操作

Asp.net 如何始终使用控制器+;url中的操作,asp.net,asp.net-mvc,visual-studio,asp.net-mvc-4,Asp.net,Asp.net Mvc,Visual Studio,Asp.net Mvc 4,我使用的是asp.NETMVC4,我希望url中始终包含控制器名称+操作名称。有时它可以工作,但无论出于什么原因,当我启动应用程序时,它只显示项目的名称+“/”,即使我使用重定向到默认操作 这是我的设置: 在routeConfig中,我有: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

我使用的是asp.NETMVC4,我希望url中始终包含控制器名称+操作名称。有时它可以工作,但无论出于什么原因,当我启动应用程序时,它只显示项目的名称+“/”,即使我使用重定向到默认操作

这是我的设置:

在routeConfig中,我有:

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "ProductionQueue", action = "Index", id = UrlParameter.Optional }
        );
    }
我使用的重定向:

return RedirectToAction( "Index", "ProductionQueue", null);
所以问题是,即使可选参数为null,是否有一种方法可以始终使控制器+操作名称位于url中?(启动时,使用重定向等…)


注意:解决方案必须在生产中运行

删除默认情况

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}"
    );

尽管注意,您将无法浏览到站点的根目录,但每次都必须指定一个控制器和操作。

我认为如果您删除映射路由中的
默认值
,则必须使用每个操作的完整路径。因此,它也必须显示在url中尝试删除
默认值
行。当我删除默认行时,它不起作用。我收到一个错误“HTTP错误403.14-禁止”,url保持不变same@coldistric您是否尝试将[Route(“ProductionQueue/Index”)]添加到您的操作方法中,但是现在,我如何告诉应用程序从特定的控制器开始,并在生产中执行操作(目前应用程序仍然以projectname+“/”)开始。。。这是默认值。。据我所知,您不能同时拥有这两个路由…默认路由将显示为/,因此,如果您想显示此路由的控制器和操作-您需要键入完整路由。。。如果您想同时执行这两项操作,可以在IIS中添加重定向以重定向到此路由?在IIS中如何执行此操作?Vs中有我应该修改的文件吗?没有,我的意思是一旦你部署了web应用程序。。。对于Visual Studio,您只需在项目属性中更改开始URL(右键单击项目并转到属性)