2010-03-22 82 views
3

我正在开发使用URL路由的基于.NET 3.5 Web窗体的网站。到目前为止,我已经创建了几条路线,而且我没有问题。我现在有一个.ashx文件,当有人点击一个链接时,它将处理从SQL Server中的一个表格发送.pdf文件到网站。通常,当我创建一个处理程序就应该是这样的:使用带有.ashx文件的Web窗体的URL路由

return BuildManager.CreateInstanceFromVirtualPath("~/ViewItem.aspx", typeof(Page)) as Page; 

对于我的ashx的文件,我想:

return BuildManager.CreateInstanceFromVirtualPath("~/FileServer.ashx", typeof(Page)) as Page; 

这不工作,虽然因为fileserver.ashx不是一个网页,让铸造它作为typeof(Page))与Page相关将失败。我应该如何将VirtualPath转换为页面,或者有其他方式我应该这样做。

回答

4

使用typeof(IHttpHandler)代替typeof(Page)

即基类中的ashx文件的同时从作为页改变返回类型为的IHttpHandler。然后更新任何其他代码,这取决于它是一个页面。

1

它是一个HTTP处理程序,因此您可能可以使用其IHttpHandler接口类型进行强制转换。但是你不能使用页面;你必须使用处理程序继承的类型。

+0

你的答案都是相似的,并且工作。谢谢! – 2010-03-22 18:09:47

相关问题