1

asp.net mvc 4 アプリケーションを構築しようとしています。

アプリケーションに HTML サイトと安らかな API の両方を含めたい。

www.mysite.com/MyDetails/ www.mysiste.com/api/users/{userid}/Details/

上記の例では、2 つのコントローラー クラスを使用します。

  1. System.Web.Mvc.Controller から継承する MyDetailsController
  2. System.Web.Http.ApiController から継承する DetailsController

また、単純な「ユーザー ルート」を WebApiConfig に追加しました。

routeTemplate: "api/users/{userid}/{controller}/{id}

私の初期のテストでは、次のシナリオは無効であるように見えます。

www.mysite.com/api/users/12345/MyDetails/ www.mysite.com/Details/

どちらも 404 を返します。

これは間違いなく良いことですが、私が見つけようとしているのは、なぜ機能しないのですか? それが機能しないことに頼ることができますか、それとも私の単純なテストでの偶然ですか?

HTML と REST API の両方を含む単一の MVC アプリ/プロジェクトの開発に苦労している人々について読んだことがありますが、最も一般的な不満は、コントローラー名を複製できないことであり、名前空間を単純に使用できないようです。それらを区別するために。

この例では、競合を避けるために意図的にクラス名を設計しましたが、他にどんな落とし穴が私をつまずかせるのを待っているのでしょうか?

ありがとう、

クリス・A

4

2 に答える 2

0

ルート ファイルを確認してください。Global.asax下にある必要がありますRegisterRoutes。このMapRoute呼び出しは、MVC ルーティングについて知っておく必要があるすべてのことを教えてくれるはずです。ルートの順序は重要であることに注意してください。上のルートが下のルートよりも優先されます。Web API は、WebApiConfigクラスとMapHttpRoute呼び出しを使用してルートを構成します。

于 2013-09-12T13:31:49.847 に答える