相关疑难解决方法(0)

使用默认控制器的ASP.NET MVC路由

对于一个场景,我有一个ASP.NET MVC应用程序,其URL如下所示:

http://example.com/Customer/List
http://example.com/Customer/List/Page/2
http://example.com/Customer/List
http://example.com/Customer/View/8372
http://example.com/Customer/Search/foo/Page/5
Run Code Online (Sandbox Code Playgroud)

这些URL通过以下路由实现 Global.asax.cs

routes.MapRoute(
    "CustomerSearch"
    , "Customer/Search/{query}/Page/{page}"
    , new { controller = "Customer", action = "Search" }
);

routes.MapRoute(
    "CustomerGeneric"
    , "Customer/{action}/{id}/Page/{page}"
    , new { controller = "Customer" }
);

//-- Default Route
routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Customer", action = "Index", id = "" }
);
Run Code Online (Sandbox Code Playgroud)

这些都进展顺利,直到新的要求到达并希望从URL中删除关键字"客户",以使URL看起来像:

http://example.com/List
http://example.com/List/Page/2
http://example.com/List
http://example.com/View/8372
http://example.com/Search/foo/Page/5
Run Code Online (Sandbox Code Playgroud)

编辑:更正了示例链接,感谢@haacked.

我尝试添加new MapRoutes{action}仅采用并将默认控制器设置为Customer.例如/

routes.MapRoute(
    "CustomerFoo"
    , "{action}"
    , new { controller = "Customer", action = …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc routing

14
推荐指数
2
解决办法
4万
查看次数

标签 统计

asp.net-mvc ×1

routing ×1