【发布时间】:2011-09-28 18:42:11
【问题描述】:
这可能是一个疯狂的问题(我对 ASP.NET 有点陌生)。但是是否可以将 ASP.NET 代码与经典 ASP 混合使用,例如在经典 ASP 页面中嵌入在 ASP.NET 中创建的表单?
【问题讨论】:
标签: asp.net asp-classic
这可能是一个疯狂的问题(我对 ASP.NET 有点陌生)。但是是否可以将 ASP.NET 代码与经典 ASP 混合使用,例如在经典 ASP 页面中嵌入在 ASP.NET 中创建的表单?
【问题讨论】:
标签: asp.net asp-classic
asp 页面 是基本的简单页面,实际上在服务器端运行独立脚本,服务器返回结果。每个页面都是单独的。
asp.net 页面 是一个完整的程序,它们连接在一起,因为它们在一个池下运行,将它们全部编译在具有许多子目录的单个目录中,具有特殊目录和其他选项。运行页面的池处理一些常见数据、会话状态以及许多其他想法。
所以你可以为你的网站设置一个完整的 asp.net,首先让它运行,然后你可以使用一些 asp 页面做一些额外的工作,直到你把它们全部转移到 asp.net
所以两者没有任何亲戚关系,所以简单的回答你不能将任何东西从一个嵌入到另一个。
<% IF Len(SomeString) < 3 then %>
Ok something here
<% end if %>
在这种情况下,代码很容易在两个页面上运行,但它们没有嵌入 asp.net 中,而是在两个页面上完整呈现一个页面。
The #include Directive 在两者上都有效,但在 asp.net 上不会像在 asp 上那样编译包含的文件。
它们有一些共同的代码输入方式,但它们完全不同,当你从 asp 迁移到 asp.net 时,你需要开始不同的细化方式
【讨论】:
一般来说,您的问题的答案是否定的。
但是,在某些情况下,可能会呈现 ASP.net 页面的一部分,然后将结果放入 ASP 页面中。
上周我使用 AJAX 做了一些试验。
这是你可以做的。
假设您有一个 ASP.net 页面,其中包含您希望在 ASP 页面上呈现的表单。
1) 使用表单创建 ASP.net 页面并将其包装在 ASP:Panel 中 - 给它一个 id:pnlForm
2) 在您的 ASP.net 代码隐藏中,在Page_Load 中编写以下代码:pnlForm.RenderControl()。
System.IO.StringWriter stringWriter = new System.IO.StringWriter();
HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
pnlReport.RenderControl(htmlWriter);
Response.Write(stringWriter.ToString());
3) 在代码隐藏的末尾添加以下代码sn-p:
// This snippet is neccessary to get ASP.net to render the report outsisde the page to write to an Excel spreadsheet.
public override void VerifyRenderingInServerForm(Control control)
{
return;
}
4) 在您的经典 ASP 页面中创建一个空白 div - 给它 ID formDiv。
5) 在经典 ASP 页面上,使用 jQuery.ajax 获取表单并将其放置在经典 ASP 页面上:
$.ajax({
type: "GET",
url: "myASPdotNetpage.aspx",
success: function(response) { $('#formDiv').html(response); }
});
正如您可以想象的那样,这并不完全是该框架的用途,但如果您确实需要渲染一些 ASP.net 并将其放在其他地方(例如在 ASP 页面上,有时甚至是电子表格),您至少可以捕获 HTML。
【讨论】:
你不能。主要问题是 ASP 和 ASP.NET 在不同的进程中运行。您可以在 ASP.NET 应用程序中拥有一个独立的 ASP 页面,但不能在它们之间共享任何代码。本质上,您将在同一目录中运行两个应用程序。无法共享存储在一个进程中的任何数据(例如 Session 数据)。
【讨论】: