如何嵌入一个ASP.NET网站(或Web应用程序)到另一个?(How do I embed an A

2019-09-19 05:07发布

我有一个ASP.NET的经验非常少,我做了一些自我训练开始之前,我写我的第一个网站/应用,这将是一个校准工具。 如何效用的工作原理是不是我关心现在。 然而,该实用程序最终需要最终嵌入在别人的网站,或者只是作为一个网址的页面与我的代码,或嵌入(比方说,作为一个HTML框架或iframe中)。 为了弄清楚这个基础,我编写了两个非常简单的ASP.NET网站,一个“父”,其中包含了框架和“孩子”我正努力投入到其中一个框架中。

家长的“Default.aspx的” HTML代码基本上是这样的:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Parent Site Test 1</title>
</head>

<frameset cols="300,*">
    <frame name="outer" src="parent.aspx" noresize></frame>
    <frame name="inner" src="[what do I put here?]"</frame>
</frameset>

</html>

该“parent.aspx”页面只有最基本的HTML它:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        I am the parent web form.
    </div>
    </form>
</body>
</html>

子网站(因为我有现在)住在一间单独的VS2008的解决方案,为这项工作的目的,因为我试图重现在别人的网站必须引用我的校准网页/网站/事情的条件。 我本来想会有一些方法来整个儿打包成一个DLL,然后会有一些方法来告诉家长使用DLL作为源的子框架。 这来自于我在Java世界中体验 - 使用JBoss和J2EE,这将迎刃而解,因为孩子只会被部署为其他EAR文件。

作为与VS2008和ASP.NET完全没有经验,我花了谷歌相当的几个小时,在过去几天里试图寻找一个答案,但没有成功。

  • 就是我想要做合理的; 是不是去想解决问题的正确方法?

  • 我可以通过某种方式包装成一个DLL部署孩子作为一个相对独立且自包含的网站(或Web应用程序...我还不清楚上的分歧)? 如果是的话,那么实际上,我怎么从我的网站/应用程序在VS2008创建该DLL,并且我怎么那么引用它的父网站?

  • 如果我完全偏离了轨道在这里,我怎么可以创造一些其他方式这个父/子组合? 孩子(真的,校准工具我最终会写)确实需要在ASP.NET(用C#),但我没有在父网站的任何控制,因为这是别人的代码,他们只是想成为能够在我效用下降。

谢谢您的帮助! 更具体的你可以,就更好了。 我很新的ASP.NET和Visual Studio中,虽然我有很多编程经验的其他语言和IDE。

Answer 1:

如果您知道客户端还使用ASP.Net,你可以把它做成一个用户控件。



Answer 2:

如果您有IIS6或更高,可以的Web应用程序,并在你的src都运行=“[善有善报这里]”你把孩子网站的本地URL(也许HTTP://localhost/ChildTestWebsite/child.aspx ) 。 然后,当你加载的http://localhost/ParentTestWebsite/Default.aspx你应该看到的帧。

将它打包成一个单一的DLL,我认为你必须作出它只是一个用户控件像乔尔说,否则你有DLL + aspx页面。



Answer 3:

你应该做的依赖于父母和孩子之间的互动如何。

如果父母是不会对孩子访问任何服务器端的功能,你可以参考绝对HTTP路径上的帧标签的SRC。 你可能会得到一些浏览器中的安全问题,如果您尝试访问JavaScript方法和应用2上diferent Web服务器,但这不是.NET特定的。

如果家长要存取服务器端功能,你需要的地方提供服务器端组件在父项目。 这是比较复杂的。 我认为你必须建立所有子页面作为包含在一个父aspx页面的Web控件。

1:构建子项目作为服务器控件的夏精库,可以由家长使用。 这是最好的办法conserning部署。 一切都内置到一个单一的DLL。 这个最大的缺点,就是服务器控件只能在代码开发。 你有没有可视化设计器来帮助你。

2:创建一个Web应用程序项目。 在VS2008您可以通过“新建项目”做到这一点,然后找到“ASP.NET Web应用程序”模板。 这意味着一个Web项目中落后(在CS里面的文件的所有内容)的所有代码是建设成一个DLL。 在这种情况下,您创建一个能够由父页面中使用用户控件(ASCX文件)。 这样做的disanvantage是,用户控件必须在飞奔的Web应用程序进行loacted,所以你必须将所有的ascx文件复制到父网站的部署位置。 DLL必须也被复制到父网站上bin文件夹。 在这里,你有优势,这是更简单的设计在VisualStudio中的GUI。 设计的图形用户界面和代码背后的ascx用户控件非常相似,创建完整的aspx网页。



文章来源: How do I embed an ASP.NET Web Site (or Web Application) into another?