Server.Execute - 从MVC控制器动作渲染.ASP

时间:2010-06-09 16:21:04

标签: asp.net-mvc asp-classic

我需要将ASP页面从MVC控制器操作呈现为字符串。我可以使用Server.Execute()呈现.aspx页面,但不能使用.asp页面。

以下是我正在使用的内容:

    public ActionResult Index()
    {
        Server.Execute("/default.asp");
        return new EmptyResult();
    }

返回

`No http handler was found for request type 'GET'`

有什么建议吗?我可以使用Web请求执行类似操作,但我宁愿避免环回请求的开销。

2 个答案:

答案 0 :(得分:1)

上次我检查过,当在ASP.NET 3.5或4.0上下文中运行并使用ASP.NET时,Server.Execute不会执行.ASP页面,因为没有为遗留的.ASP配置ASP.NET httpHandler页。

我要做的是使用WebRequest执行.ASP页面并存储结果,然后将响应的字符串输出转储到字符串,然后在执行控制器方法时转储该字符串。这样,您甚至可以在不同的服务器上执行.ASP页面(Server.Execute不是对农场友好的!)

答案 1 :(得分:0)

使用Server.TransferRequest()代替.Execute(),它应该有效。如果它在控制器中不起作用,请将其放在您的视图中,如下所示:

@{Server.TransferRequest("/default.asp");}