在ASP.NET中跨网站共享页面

3
在我们公司,我们正在尝试找出如何在ASP.NET中创建一个单页面并跨域共享的方法。我们想要创建一个简单的“购物车”页面,对于所有客户的网站来说都是相同的,这样我们就可以从一个中央位置(例如http://ourwebsite.com/thecart.aspx)包含页面,而不需要重复代码,并且仍然能够将每个客户的CSS样式和品牌应用于页面。在ASP.NET中,我们如何跨网站共享单个页面?我们每个客户的网站都位于不同的域上,在某些情况下,它们也可能位于不同的服务器上。

1
我不确定你能否在不使用iframes的情况下“包含”页面。你可以允许向thecart页面发送请求,但仍然需要编写前端代码来处理它。 - Eonasdan
那么你的意思是...我可以创建一个返回页面HTML的Web服务,然后在客户网站中简单地“包含”它? - Jesse L. Zamora
1
一个服务器将托管页面并呈现它,你可以使用。然而,我认为IrishChieftain正在朝着更好的方向前进。你可以考虑创建一个UC或dll或其他东西。 - Eonasdan
哎呀,看来使用 DLL 不是一个选项,因为我实际上还需要将页面导入到 ASP 或 PHP 网站中。那么在这种情况下我该怎么办呢? - Jesse L. Zamora
我认为在这个阶段,你最好的选择是将页面托管到某个地方,并使用你的服务器端代码来爬取页面。 - Eonasdan
显示剩余5条评论
2个回答

2
我认为您想做的是管理一个页面,并使其自动更新客户网站上的其他页面,理想情况下与“共享资源”相同,对吗?为此,您不一定需要“共享”页面,而是需要一个简单的多站点部署流程,只需单个页面即可。但是...我认为?无论如何,如果不通过iframe加载页面,或者创建一个中心位置(例如“cart.somedomain.net”),然后来回推送信息(我假设您将有购物车项目),您需要一种自动发布页面到不同站点的方法。
即使您将“cart”页面作为自己的解决方案并将其包含在各个站点中,您仍然会遇到部署问题。我认为您有几个选择,其中一些已经提到:
  1. 创建一个iframe,从外部源加载页面。
  2. 为所有域名创建一个中心位置,用于推送其结帐过程的信息(store.somedomain.net或somdomain.net/cart.aspx),并进行相应处理。
  3. 创建一个应用程序或脚本,自动部署更新的资源到多个站点(我不知道是否有这样的工具,否则我会向您提供名称,我很抱歉)。
总之,希望这能帮助您,祝您好运。

非常有用的想法,谢谢。我倾向于像选项#2这样的方案,其中此页面将从任何域推送到一个中心位置。现在的问题实际上是保留会话状态并跨域使用AJAX。 - Jesse L. Zamora

1
从自定义库中继承并创建页面作为另一个服务器控件。当然,您需要将其放入源代码控制中。
实际上,它不需要成为一个“页面”,而是一个自定义的服务器购物车控件。

好的,有趣。那么理论上,这个控件能够使用Session变量和AJAX进行通信吗? - Jesse L. Zamora
每个Web服务器上的每个会话都是独特的,对吧?如果您需要会话,它就像常规自定义控件一样为您提供。您唯一需要注意的是源代码控制版本控制,如果在一个实例上更改了代码但未推送到其他实例,则需要小心。 - IrishChieftain
1
如果我创建一个包含控件的DLL,并在所有客户网站中引用它,会怎样呢? - Jesse L. Zamora
1
这正是我的意思。你将从自定义库部署DLL。它的美妙之处在于,如果您希望随时间升级代码或添加代码,它将具有伸缩性。 - IrishChieftain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接