0

私は HTML を少し理解するのに苦労しており、SO が何が起こっているのかを理解する過程で私を助けてくれることを望んでいました。

マークアップは単純です:

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

現在、これは完全に機能しており、何が起こっているのかを理解しようとしています。私の理解では、これはルートディレクトリに移動し、api というフォルダーを見つけ、function という関数を見つけて実行します。

問題は、api というフォルダがないことです。では、ここで何が起こっているのでしょうか? DB からアイテムを取得するために実際に呼び出されている C# 関数を見つけることができますが、これを呼び出すコードがどのように構造化されているかわかりません。DbContext を拡張して情報を取得するクラスがありますが、これがどのように呼び出されているかを確認できず、ブレークポイントを挿入したときにコール スタックにありません。

これに光を当てる方法について、誰かが私に情報を教えてもらえますか?

(非常に一般的な質問で申し訳ありません。実際に何が起こっているのかを理解し始めたら、より具体的に説明します!)

4

2 に答える 2

2

実際にはapiフォルダは必要ありません。特定の URI スキームをいくつかのファイルにマップするように構成された単純なルートにすることができます。ファイルである必要はなく、クラスのメソッドでもかまいません。

たとえば、ASP.NET Web API には、ApiControllerメソッドを持つクラスがあります。あなたの場合、メソッドは呼び出されるFunctionか、GetFunctionまたは同様です。
ルート構成には次のようなものが含まれます。

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

詳細については、ASP.NET Web APIのルートの概要を参照してください。

ASP.NET WebAPI に関するシリーズ全体も読むことをお勧めします。

于 2013-02-06T11:04:15.410 に答える
0

"~/api/function"ファイルシステム内の実際のフォルダーである必要はありません。web.xmlのように、Web サーバー構成で定義された仮想パスにすることができますtomcat

于 2013-02-06T11:07:51.213 に答える