【发布时间】:2010-10-09 15:00:23
【问题描述】:
我需要从我用 ASHX 制作的 API 中获取一个值,通常它是从 javascript 调用的,但我需要在 ASP.NET 中直接调用它我认为这应该不是问题,但我不确定语法。
【问题讨论】:
我需要从我用 ASHX 制作的 API 中获取一个值,通常它是从 javascript 调用的,但我需要在 ASP.NET 中直接调用它我认为这应该不是问题,但我不确定语法。
【问题讨论】:
你有几个选择
这些只是一些简单的方法。
我个人喜欢第一种方法,因为它促进了代码重用,但根据场景你可以做你喜欢的事情。
编辑以在评论中提供问题的答案。
基本上是的...您无需在处理程序中包含一堆代码,而是创建了一个类,该类在上下文中对您有意义。在该类中,您可以放置处理程序中的逻辑。然后从您的处理程序中,您可以创建一个实例或调用该类的静态版本(取决于您如何实现它)将 HttpContext 对象或该逻辑正确运行所需的任何内容传递给它。在您的 ASPX 页面中执行相同的操作。您现在可以从应用程序中的任何位置调用包含逻辑的对象,而不是将其单独驻留在处理程序中。
前:
Public Class MyCommonLogic
Public Shared Function ReturnSomethingCommon(context As HttpContext) As String
Return "Hello World!"
End Function
End Class
然后从处理程序或 aspx 页面..
Dim something As String = MyCommonLogic.ReturnSomethingCommon(...)
我将函数设为静态,但这只是一个示例,当然我会实现它,但在您的场景中会更有意义。
将代码更改为 VB 抱歉。
【讨论】:
如果 ASHX 在同一台服务器上,尤其是在同一个 Web 应用程序中,您应该将 ashx 中的逻辑重构为 aspx 和 ashx 都可以调用的公共类。
否则你可以看看使用:System.Net.WebClient
【讨论】: