我需要将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请求执行类似操作,但我宁愿避免环回请求的开销。
答案 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");}