繁体   English   中英

将路由参数映射到 asp.net Web API 中的 bool

[英]map route parameter to bool in asp.net web API

所以我现在注册了以下路线:

configuration.Routes.MapHttpRoute(
            name: "MediaHandler",
            routeTemplate: "api/mediahandler/{action}/{id}",
            defaults: new { controller = "PortalAsset", id = RouteParameter.Optional }
        );

这是控制器的样子:

 public class MediaHandlerController : ApiControllerBase
{
    ///...
      [HttpGet]
      [ActionName("download")]
      public async Task<HttpResponseMessage> DownloadAsset(long id)
      {
           // action
      }

我想向控制器添加布尔参数 - isPreview并希望通过以下方式映射路由:

  1. http://host/api/mediahandler/download/1893映射为: id =1893, isPreview =false
  2. http://host/api/mediahandler/download/1893/preview映射为: id =1893, isPreview = true

有没有办法我可以做到这一点?

使用属性路由,您可以这样做

[RoutePrefix("api/mediahandler/download")]
public class MediaHandlerController : ApiControllerBase
{
      [HttpGet]
      [Route("{id}")]
      public async Task<HttpResponseMessage> DownloadAsset(long id)
      {
           return DownloadAsset(id, false);
      }

      [HttpGet]
      [Route("{id}/preview")]
      public async Task<HttpResponseMessage> DownloadAssetPreview(long id)
      {
          return DownloadAsset(id, true);
      }

      private async Task<HttpResponseMessage> DownloadAsset(long id, bool isPreview)
      {
           // action
      }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM