来自Web API 2控制器的ASP .NET MVC Url.Action

时间:2015-10-02 09:31:45

标签: c# asp.net asp.net-mvc asp.net-web-api

我目前正在我正在开发的项目中并行使用ASP .NET MVC和Web API 2。

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

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

产生MVC HttpContext / RequestContext的任何方法?

1 个答案:

答案 0 :(得分:2)

你不应该考虑混合MVC / WebAPI,因为WebAPI被设计为无状态,这就是它的上下文与MVC不同的原因。

如果您需要在WebAPI中使用MVC链接(只是好奇 - 为什么?),您应该使用T4MVC之类的帮助程序或者自己编写,这将封装要使用的URL。你不应该考虑在WebAPI中使用MVC上下文,因为你永远不知道它的当前状态是什么。

如果API必须了解您的MVC结构,那么您的设计IMO就会出现问题。