首页 > 解决方案 > 如何有路线 Product/a23 而不是 Product/Index/a23

问题描述

我尝试通过 ProductController 的 Index 操作为我们的产品提供 MVC 请求。

public ActionResult Index(string id)
{
    return View();
}

而且我想避免“ http://oursite.com/Product/Index/a23 ”的模式(其中a23是产品的唯一ID)

相反,我需要“ http://oursite.com/Product/a23

我的 route.config 是 VS mvc web-app 模板的默认设置,如下所示:

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

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}

什么是最简单,更好的方法?我宁愿不更改默认的 mapRoute,因为它适用于我们 web 应用程序的其他端点,即 Order/Placement/18、Inventory/Stats 等。任何添加 mapRoute 或路由属性的解决方案都将受到欢迎。

标签: c#asp.net-mvcroutes

解决方案


推荐阅读