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

Zol*_*ási 3 c# asp.net-mvc url-routing asp.net-mvc-4

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

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

我正在玩路由定义,我尝试完全跳过“products/list”路由,我还尝试添加“products/list/*”路由,但尚未成功。

vcs*_*nes 5

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

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

您可以在MSDN 的路由文档中的“处理 URL 模式中可变数量的段”部分中了解更多信息