1

因此,我们的客户希望将我们的 MVC 应用程序嵌入到他们的站点中。我想到的第一个解决方案 - 将我们的应用程序加载到他们网站上的 iFrame 中,我们就完成了。

结果他们想要的东西有点复杂(而且我很愚蠢)。我们仍然必须托管我们的应用程序,但是当用户访问我们的站点时,它必须看起来像他们的站点以及我们的内容 - 我们的视图,他们的布局 - 但他们想要托管布局。

因此,每次发出请求时,都会从客户端的站点检索一个页面(布局),将我们渲染的视图推入其中并显示给最终用户。

所以问题是:是否有可能做客户想要的,因为我无法理解如何使用 MVC 来完成?

有什么意见或建议吗?

4

2 回答 2

2

最好的解决方案是简单地将您的数据公开给他们,让他们以任何他们想要的方式呈现它。你可以让你的控制器简单地为他们吐出 JSON,让他们随心所欲地处理它。然而,这一切都假设没有对视图进行任何繁重的工作。

于 2013-01-07T21:10:39.223 回答
1

他们所要求的实际上超出了 MVC 视图引擎的功能,但它仍然是可能的。视图引擎不像 Web 浏览器那样从各种 Web 资源组装一个网页。浏览器将根据 html 中指定的内容加载 JS、CSS 和图像。视图引擎将根据 MVC 应用程序的目录结构中的内容加载视图、模板和布局。它并非旨在从另一台服务器获取这些文件。

但是,我认为您可以完成这项工作,尽管它会充满安全问题。您可以在 Views 目录中创建一个符号链接,该链接链接到您的客户端托管的网络共享。在此共享中将是他们希望您使用的布局。现在,从 Views 目录中(不在网络共享中)您自己的视图中,您可以引用布局:

@{
    Layout = "~/Views/HostedNetworkShare/layout.cshtml";
}

由于安全问题,我推荐这种方法,但我也看不出它为什么不能工作。它还需要您的客户在托管网络共享方面进行一些合作。

于 2013-01-07T21:17:21.113 回答