ASP.NET页面仅使用Response.Write

时间:2010-09-02 08:31:57

标签: asp.net asp-classic

假设我有一些经典ASP页面通过Response.Write生成所有输出。

我想将这些页面移植到ASP.NET,但(至少最初)避免完全重写。

我应该如何设置我的ASP.NET项目以促进这一点?我假设我有空的.aspx文件并将VB.NET / C#等效于VBScript代码放在代码隐藏文件中,然后从那里使用Response.Write?

4 个答案:

答案 0 :(得分:2)

您可以在这里找到scott Mitchell关于如何将ASP页面转换为ASP.NET的教程:http://msdn.microsoft.com/en-us/library/ms973813.aspx

答案 1 :(得分:1)

您描述的选项可以使用。

确保.aspx页面只有完整的@page指令(包含InheritsCodeBehind和可能的language属性)移植代码并使用隐藏在代码中的Response.Write

您可能想要考虑移植到更传统的asp.net应用程序 - 可以将常用的UI元素制作成用户控件,然后可以跨页面重用这些元素。

答案 2 :(得分:0)

看起来像是一件不寻常的事情,但你建议的方法应该有用 但是我建议将vbscript转换为C#/ VB.NET所花费的精力最好只用于重写为标准的ASP.NET页面。

答案 3 :(得分:0)

这是一个想法:

由于 ASP.net MVC 可以从控制器中吐出HTML,您甚至不需要构建.ASPX页面,只需构建适用于您应用程序的控制器。

有两种方法:

public ActionResult myAction() {
    Return Content("<html><body>Hello World!</body></html>");
}

而且,更优雅,性能更好(取决于HTML的大小),但更多工作:为您的网页创建自定义ActionResult

public class MyActionResult : ActionResult
{
    public override void ExecuteResult(ControllerContext context)
    {
        context.HttpContext.Response.Write("<html><body>Hello World!</body></html>");
    }
}