MVC自定义路由不起作用

时间:2016-02-03 05:01:38

标签: .net asp.net-mvc

我在下面定义了我的路线

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

routes.MapRoute(
    name: "ProductAPI",
    url: "{productId}/{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 
    constraints: new { productId= @"\d{15}" }
);

链接是用

创建的
@Html.ActionLink("PRD List", "GetPrdList", "PrdList", new { productId = @ViewBag.productId}, null)

以上链接导致无法找到资源。我是路由概念的新手,请帮我解决上面代码中的错误。

我希望我的网址看起来像../ProductID/{controller}/{action}/{id},如果未在网址中指定productID,则应该选择默认网址../{controller} / {action} / {id}

1 个答案:

答案 0 :(得分:0)

也可以在WebApiConfig中尝试此代码:

config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
        config.Routes.MapHttpRoute(
            name: "Other",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );