是否可以定义接受文字的Web Api Route?

时间:2012-04-17 20:16:30

标签: asp.net-mvc asp.net-mvc-routing asp.net-web-api

我为Web Api定义了一条路线,如下所示

 routes.MapHttpRoute(
                name: "SearchApi",
                routeTemplate: "api/search/{controller}-{seopath}",
                defaults: new { seopath = RouteParameter.Optional }
            );

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

然而,当我从visual studio运行它并转到http://localhost:50356/api/search/jobs-in-Bangalore时,我收到404错误消息“找不到与控制器匹配的类型'jobs-in'。”

在本书中,Professional Asp.Net MVC 1.0,第207页{title} - {author}被作为有效的路径网址给出,那么为什么它将“jobs-in”解释为控制器而不是“工作”呢?

1 个答案:

答案 0 :(得分:1)

显然这场比赛很贪婪。为什么不定义您的路线,如:

routeTemplate: "api/search/{controller}/{seopath}"