我被要求构建一个MVC 4项目,其中控制器方法可以由外部服务调用。
关于此外部服务的信息非常有限,但每个服务端点将呈现不同的视图。
我的工作是创建这些视图并手动调用控制器以呈现服务端点要求的视图。
服务和MVC项目将作为单独的项目构建。 MVC项目是一个独立的项目。该服务需要返回表单的HTML,然后将其传递给另一个项目。
我不知道从一个位于不同解决方案的项目中通过代码隐藏来调用控制器的方法。任何链接/教程都会很棒。
道歉,如果我的问题看起来含糊不清或缺乏信息。如果有,请告诉我,我会添加更多信息。
答案 0 :(得分:1)
我建议您避免使用中间层,直接从外部服务直接调用MVC控制器或Web Api。
查询外部资源的快速示例:
public string ListProductsAsync()
{
var client = new HttpClient();
var response = client.GetStringAsync("http://youriste/controller/action");
return response.Result;
}
要获得更高级的说明,以下链接(Calling a Web API From a .NET Client in ASP.NET Web API 2)可以为您提供帮助。
答案 1 :(得分:0)
您可以考虑创建API Controllers
(WebAPI
)而不是普通Controller
。
然后返回视图,如下所示 - https://aspguy.wordpress.com/2013/09/10/web-api-and-returning-a-razor-view/
WebAPI作为服务公开给客户端,他们可以像使用其他服务一样使用它们。
然而,这将是一个黑客攻击,建议使用WebAPI作为restful服务并仅返回xml或json。
现在,HTML中需要响应,您可以使用HttpClient
从调用应用程序中调用控制器(MVC或WebApi)。
很少有链接 -
http://www.asp.net/web-api/overview/advanced/calling-a-web-api-from-a-net-client