HttpConfiguration MapHttpRoute 不同的控制器请求有和没有 QueryString

问题描述 投票:0回答:0

我正在尝试支持如下两个 HTTP 请求:

  • http://localhost:80/bookstore/book/1 <== this gets the actual book (ID = 1) in binary
  • http://localhost:80/bookstore/book/1/?include=title&include=author<== this returns the title and author of book (ID = 1) in Json

我有这样的东西,但只有 bookMeta 控制器被击中:

config.Routes.MapHttpRoute(
            name: "bookMeta",
            routeTemplate: "/book/{bookID}",
            defaults: new
            {
                controller = "bookMeta",                    
                bookID= RouteParameter.Optional
            }
        );

config.Routes.MapHttpRoute(
            name: "bookBinary",
            routeTemplate: "/book/{bookID}",
            defaults: new
            {
                controller = "bookBinary",                    
                bookID= RouteParameter.Optional
            }
        );

很明显,它们是重复的路线,这是行不通的。

所以我的问题是,我如何设置

MapHttpRoute
来告诉上面两个请求转到两个不同的控制器(
bookBinary
bookMetadata
)?

controller querystringparameter
© www.soinside.com 2019 - 2024. All rights reserved.