ASP.NET API Controller方法自定义路由 - 包括当前URL

时间:2015-06-12 08:29:00

标签: asp.net-mvc routing sitecore custom-component asp.net-apicontroller

我正在尝试为API控制器创建一个自定义路由,它具有以下结构:

/{currentUrl}/{methodName}

currentUrl不作为参数。

示例:

/tool/compute/download

其中“download”是方法的名称,“/ tool / compute /”是我们当前的页面。

提一下,我正在使用Sitecore。

有人可以帮忙吗?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以构建一个将工具名称作为文章的方法,如下所示:

    [Route("tool/{toolName}/download")]
    public HttpResponseMessage Get(string toolName)
    {
        var path = GetPathByToolName(toolName);
        HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
        var stream = new FileStream(path, FileMode.Open);
        result.Content = new StreamContent(stream);
        result.Content.Headers.ContentType =
            new MediaTypeHeaderValue("application/octet-stream");
        return result;
    }