【问题标题】:Get ActionResult from another application从另一个应用程序获取 ActionResult
【发布时间】:2017-06-27 07:30:49
【问题描述】:

我有 MVC 应用程序,使用 ActionResult 索引方法。此方法返回一个视图。

现在我们决定从另一个应用程序调用此方法并获取此ActionResult 视图以将其转换为相同的 Html 页面。

我正在像这样调用 MVC 应用程序的方法:

baseAddress = "http://localhost:63803/";
apiAddress = "Violations/Index";
var _client = new HttpClient();
_client.BaseAddress = new Uri(baseAddress);

try
{
    var response = _client.GetAsync(apiAddress).Result  ; 
    var content = response.Content.ReadAsStringAsync().Result;

    return content;
}

我正在获取页面的完整 HTML。但是我怎样才能得到真正的ActionResult?因为我想在我的新应用程序中看到相同的视图。

【问题讨论】:

  • 你的问题没有多大意义。你能把最后一句话说清楚吗?
  • 是的。 MVC 应用程序 - 是我们的服务。我们想从 GateWay web api 获取一个视图(ActionResult)。所以,我想得到 ActionResult 方法的结果(实际上就像网关服务中的“ActionResult”类型。
  • 您无法通过 HTTP 获取该类型的对象。你为什么要这样做呢?
  • 因为我们还有其他服务(WebApi、Mvc 等)并且我们希望有一个 GateWay 服务来调用所有这些服务,就像一座桥梁。所以,我们需要把这个 MNV 分离到客户端和服务端
  • 一旦你调用了真正的 ActionResult 直到它出现在你面前,它就会清除 MVC 管道。这意味着它会渲染输出并将渲染的输出发送给您。现在你想让这个渲染的东西回到 actionresult 吗?为什么??只需使当前控制器操作无效并刷新此 html 作为响应。

标签: .net asp.net-mvc visual-studio model-view-controller actionresult


【解决方案1】:

制作另一个项目的 Dll 并将其包含在您的主项目中,作为参考。然后在页面上使用它,当你打电话时给出完整的路径,比如 namespace.controller.action

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-20
  • 1970-01-01
  • 2012-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多