C# Web API 2控制器中的ASP.NET MVC Url.Action

C# Web API 2控制器中的ASP.NET MVC Url.Action,c#,asp.net,asp.net-mvc,asp.net-web-api,C#,Asp.net,Asp.net Mvc,Asp.net Web Api,我目前正在一个项目中并行使用ASP.NETMVC和WebAPI2 我希望能够在API响应中包含指向特定MVC操作的链接,因为这些操作通常与所提供的资源相关 问题是我在Web API中没有MVC HttpContext,因此我无法使用Url.Action方法生成链接。我唯一的其他选择是手动/硬编码链接,但我不想采用这种方法,因为它无法扩展 < >生成MVC HtpTrace/RevestField.< /P> < P>的任何方式,都不应该考虑混合MVC/WebAPI,因为WebAPI被设计成无状态

我目前正在一个项目中并行使用ASP.NETMVC和WebAPI2

我希望能够在API响应中包含指向特定MVC操作的链接,因为这些操作通常与所提供的资源相关

问题是我在Web API中没有MVC HttpContext,因此我无法使用Url.Action方法生成链接。我唯一的其他选择是手动/硬编码链接,但我不想采用这种方法,因为它无法扩展


< >生成MVC HtpTrace/RevestField.< /P> < P>的任何方式,都不应该考虑混合MVC/WebAPI,因为WebAPI被设计成无状态的,这就是它的上下文不同于MVC的原因。

如果您需要在WebAPI中使用MVC链接(只是好奇-为什么?)。你不应该考虑在WebAPI中使用MVC上下文,因为你永远不知道它当前的状态是什么。
如果API必须了解您的MVC结构,那么您的设计就有问题。

有趣。在我的例子中,我正在使用客户端框架构建站点的一个较新部分,所有交互都是通过API完成的。该网站已超过10年的历史,其基础是MVC以及老牌学校的ASP技术。新的部分需要链接到网站的旧部分,因此这是必要的。编辑:我很想知道为什么这会表明我的设计有问题?@Titus这就是为什么你应该有一些助手,可以映射URL。将上下文引入WebAPI对我来说似乎是错误的。我同意,并且不会使用这种方法。我已经在我们的产品中引入了很多新技术,所以这可能是以后销售的产品。现在我想我可能会使用硬编码的链接。再想想,我认为在API中抛出MVC链接没有什么错。我在这里找到了我的问题的答案:@Titus取决于您对API的期望。如果您考虑重用它,那么这种方法就不适用了。