我正在开发一个使用URL路由的基于.NET 3.5 Web窗体的网站。到目前为止,我已经创建了一些路线,但没有任何问题。我现在有一个.ashx文件,当有人单击链接时,该文件将处理从SQL Server中的表向网站发送.pdf文件的情况。通常,当我创建一个处理程序时,它将如下所示:
return BuildManager.CreateInstanceFromVirtualPath("~/ViewItem.aspx", typeof(Page)) as Page;
对于我的.ashx文件,我尝试过:
return BuildManager.CreateInstanceFromVirtualPath("~/FileServer.ashx", typeof(Page)) as Page;
但是,这不起作用,因为fileserver.ashx不是页面,因此在Page失败时将其强制转换为typeof(Page))。我该如何将VirtualPath转换为Page而不是页面,或者应该采用其他方法?
最佳答案
使用typeof(IHttpHandler)
代替typeof(Page)
那是ashx文件的基类。还将返回类型从Page更改为IHttpHandler。然后更新依赖于页面的任何其他代码。
关于c# - 对带有.ashx文件的Web窗体使用URL路由,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2494252/