如何为asp.net mvc写路由

时间:2014-04-16 08:14:50

标签: c# asp.net-mvc

我有mvc项目。在控制器中我创建了文件夹Users。在这个文件夹中我放了用户控制器。所以。我需要在RouteConfig.cs文件上写一下,我手动在浏览器上打开用户控制器的页面? enter image description here

P.S。我这样写,但它没有帮助我。

            routes.MapRoute(
            "Users",
            "Users/AprilNelsonController/{action}",
            new { controller = "AprilNelsonController", action = "Index" },
            new[] { "Users" }
        );

1 个答案:

答案 0 :(得分:0)

评论card_master提供的应该可以帮助您,但我可以看到您的路线配置有两个主要问题。首先,您在路线中包含“控制器”一词。按惯例添加,因此MVC可能正在寻找“AprilNelsonControllerController”。

其次,命名空间约束需要具有完整的命名空间。 e.g。

routes.MapRoute(
    name: "Users",
    url: "Users/AprilNelson/{action}",
    defaults: new { controller = "AprilNelson" action = "Index" },
    namespaces: new string[] { "YourAppName.Controllers.Users" }
);

这将启用以下路由:“/ Users / AprilNelson”或“/ Users / AprilNelson / Index”来调用AprilNelsonController上的索引操作。

通过一起移除控制器可以进一步改善这一点。

routes.MapRoute(
    name: "Users",
    url: "Users/{controller}/{action}",
    defaults: new { action = "Index" },
    namespaces: new string[] { "YourAppName.Controllers.Users" }
);

这将允许您以相同的方式呼叫任何用户的操作,例如

/用户/ JessicaCox

/用户/ SaraGreen

需要注意的一点是,您必须将此路由定义置于默认路由定义之上,以确保首先对其进行评估。

希望有所帮助。