gpt4 book ai didi

c# - Web API 2 中的 Http RouteUrl 和属性路由

转载 作者:太空狗 更新时间:2023-10-29 22:59:11 26 4
gpt4 key购买 nike

我有以下 Controller ,它允许我使用以/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 })

我不认为我在这些问题上走在正确的轨道上......它们都没有替换路由前缀中的版本或路由属性中的 ext,以及各种其他问题。有什么方法可以在不对路径进行硬编码的情况下链接到 URL 吗?

最佳答案

尝试以下操作:

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

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

关于c# - Web API 2 中的 Http RouteUrl 和属性路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22396905/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com