HTML链接未指向有效文件夹..但它仍然有效

本文关键字:有效 文件夹 HTML 链接 | 更新日期: 2023-09-27 17:57:49

我在理解HTML方面遇到了一些困难,希望SO能在弄清楚发生了什么的过程中帮助我,这样我将来就可以自己做这件事了。

标记很简单:

<p>
  GET <a href="~/api/function">/api/function</a>: returns list of info from database.
</p>

现在,这是完全有效的,我正在努力了解发生了什么。我的理解是,这将转到根目录,找到一个名为api的文件夹,找到一种名为function的函数并运行它。

问题是没有一个名为api的文件夹,那么这里可能发生了什么?我可以找到实际被调用以从DB中检索项的C#函数,但我不知道调用它的代码是如何构造的。我有一个扩展DbContext以检索信息的类,但我看不到它是如何被调用的,而且当我插入断点时,它不在调用堆栈上。

有人能给我一些信息,告诉我如何对此有所了解吗?

(对于这个非常笼统的问题,我深表歉意,当我开始了解实际情况时,我会给出更多细节!)

HTML链接未指向有效文件夹..但它仍然有效

实际上不需要api文件夹。它可以是一个简单的路由配置,将某个URI方案映射到一些文件。它甚至不一定是文件,它可以是类上的方法。

例如,在ASP.NET Web API中,有带有方法的ApiController类。在您的情况下,该方法将被称为FunctionGetFunction或类似方法
路由配置将包含这样的内容:

routes.MapHttpRoute("SomeRoute",
                    "api/{action}",                           
                    new { controller = "YourController", action = "Index" });

有关详细信息,请参阅ASP.NET Web API中的路由介绍。

我建议您也阅读有关ASP.NET WebAPI 的整个系列

"~/api/function"不需要是文件系统中的实际文件夹。它可以是在Web服务器配置中定义的虚拟路径,如tomcat中的web.xml