簡體   English   中英

WebAPI 2中的HttpRouteUrl和屬性路由

[英]HttpRouteUrl and Attribute Routing in WebAPI 2

我有以下控制器,允許我使用以/api/v1/report/123.csv結尾的URL通過CSV下載文件:

[RoutePrefix("api/v{version:int?}/report")]
public class ReportController : ApiController
{
    // ...
    [Route("{id}.{ext}", Name="DownloadCsvReport")]
    public HttpResponseMessage Get(int id, String ext)
    {
       //...
    }
}

是否有任何助手可以構建正確的URL? 我正在嘗試鏈接到MVC4.5頁面中的文件,但我似乎無法獲得擴展或版本:

@Url.HttpRouteUrl("DefaultApi", new { controller = "Report", ext="csv", version=1, id = 3, })

@Url.RouteUrl(routeName: "DownloadCsvReport", routeValues: new { id=123, version=1, ext = "csv"})

@Url.Action("DownloadCsvReport", new { id = 123, ext="csv" })

@Url.RouteUrl("DefaultApi", new { httproute = true, controller = "Report", id = 123, Ext="csv", version =1 })

我認為我沒有與這些中的任何一個走在正確的軌道上....他們都沒有替換routeprefix中的版本或路由屬性中的ext,以及其他各種問題。 有沒有辦法在沒有硬編碼路徑的情況下鏈接到URL?

請嘗試以下方法:

@Url.HttpRouteUrl("DownloadCsvReport", new { ext="csv", version=1, id = 3, })

要么

@Url.RouteUrl("DownloadCsvReport", new { httproute = true, id = 123, Ext="csv", version =1 })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM