如何忽略“”之后的所有字符;控制器/动作”;在ASP.NET MVC路由

本文关键字:动作 NET 路由 MVC 控制器 ASP 字符 何忽略 之后 | 更新日期: 2023-09-27 17:58:41

我想要我的ASP。NET MVC4应用程序仅为特定页面提供基本HTML标记,之后我将使用knockout.js/history.js/AAJAX处理客户端上的所有其他内容,包括初始页面加载。

因此,当有人引用URL http://example.com/products/list/food/fruits时,MVC路由器应该简单地忽略"products/list"后面的所有内容,并将请求路由到ProductsControllerList操作。然后在客户端,我将处理其余部分并相应地加载请求的数据。

我在玩路线定义,我试图完全跳过"products/list"路线,我还试图添加"products/list/*"路线,但还没有成功。

如何忽略“”之后的所有字符;控制器/动作”;在ASP.NET MVC路由

您可以使用星号作为路由中最后一个变量的一部分。例如,在配置路线时:

routes.MapRoute(
    "ProductRoute",
    "products/list/{*otherArgs}",
    new { controller = "Products", action = "List" });

您可以在MSDN的文档中的"处理URL模式中的可变段数"一节中了解更多关于路由的信息

您需要创建自己的路由。

像这样的东西应该可以做到:

 routes.MapRoute("Products", "Products/{List}",
            new {controller = "Products", action = "List"}
            );

注意:我不确定路线中是否需要其他参数。