[英]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.