很久以前,我问了这个问题,并创建了一个不太理想的iframe解决方案。现在我找到了一个很棒的WordPress插件,叫做iframe-less。
http://wordpress.org/extend/plugins/iframe-less-plugin/
基本上,你只需要提供一个URL,它就会直接将该页面的内容嵌入到你的WordPress页面中。到目前为止,它似乎运行得非常好。
这不是理想的解决方案,但我的解决方案涉及使用IFrame,它们仍然在HTML 5规范中(实际上它们有一些新属性),所以我认为没问题。基本上,我在WordPress中创建一个带有IFrame的页面,并在其onload上使用一些JavaScript代码,根据内容大小自动调整IFrame的大小,使用下面的代码(IFrame称为frame,宽度为100%)。
function autoIframe(){
try
{
var page_height = document.getElementById('frame').contentWindow.document.body.scrollHeight;
document.getElementById('frame').height = page_height+60;
}
catch (err)
{
window.status = err.message;
}
}
这段代码会在第一次加载内容时进行调整大小,如果内容发生更改,则需要以某种方式调用它。我的解决方案是每次进行搜索时,使用parent.autoIFrame()从innerpage调用该方法。
p.s. 如果iframe和外部页面来自同一个域(没有跨站点脚本),则JavaScript才能正常工作。
WordPress使用PHP和MySQL。我已经成功地在Windows 2008下使用IIS 7安装并运行它。IIS 7中的新CGI功能也带来了相当不错的性能。
当然,您可以在同一台服务器上运行一个单独但相关的基于ASP.NET的站点。
您还可以运行混合的ASP.NET + PHP站点。IIS根据URL的扩展名将传入的请求定向到特定的HttpHandler,因此没有理由不能混合使用*.php和*.aspx。
事实上,您还可以做一些事情,比如编写一个基于.NET的HttpModule,与PHP/IIS站点集成,以执行诸如日志记录、集中式cookie管理、HTTP头“调整”等操作。
如果您想在*.php文件中放置ASP.NET控件,那就完全不同了。为此,您需要编写一个HttpHandler,它知道如何解析这样的文件。要么这样,要么只使用iframes....
简短回答:不行,不容易实现。WordPress是PHP编写的,你不能在PHP页面上放置一些.NET代码。
长篇回答:如果你真的很想这样做,并且值得花费时间和精力,那么可以通过使用一些已经建议的策略来解决,例如:将ASP.NET部分托管在Windows服务器上(或使用Mono),并在WordPress页面中显示它。
请记住,这不是常见的设置,可能比创建或使用某种WordPress插件更困难。
我正在探索http://sourceforge.net/projects/wordpressnet/,如果有人需要的话...
另外,
WordPress是一个LAMP(Linux Apache MySQL PHP)应用程序,通常在Linux服务器上运行。我认为你不能将ASP.Net集成到WordPress中。但当然你可以从WordPress提供链接到ASP.Net应用程序。
不,这样行不通。你不能在由WordPress提供的页面上使用ASP.NET。你可以在同一个网站中使用ASP.NET,例如通过让某些目录或某些页面提供ASP.NET内容,而网站的其他部分仍然提供WordPress内容。
然而,如果你希望使用的ASP.NET代码非常简单,为什么不用PHP呢?WordPress使用的是PHP,它与ASP.NET非常相似。
我可以在我的主机(Dinamo.net.tr)上同时使用Asp.Net和Wordpress,而不需要使用任何插件或iframe。
它们真的可以一起工作,你只需要上传你的Asp.Net C#文件,并同时安装Wordpress即可。