新しいASP.NETMVC4.0プロジェクト(シングルページアプリやモバイルなど)を作成すると、すべてApiControllerから継承するControllerクラスがあります。
Webサービスを他の人に公開する必要はありません。ログインしている場合は、プライベートWebアプリケーションを使用してパブリックWebサイトを実行したいだけです。ApiControllerは必要ありませんが、シングルページアプリが必要です。
なぜ彼らはそれをそのようにしたのですか?
新しいASP.NETMVC4.0プロジェクト(シングルページアプリやモバイルなど)を作成すると、すべてApiControllerから継承するControllerクラスがあります。
Webサービスを他の人に公開する必要はありません。ログインしている場合は、プライベートWebアプリケーションを使用してパブリックWebサイトを実行したいだけです。ApiControllerは必要ありませんが、シングルページアプリが必要です。
なぜ彼らはそれをそのようにしたのですか?
WebApiは、必ずしも他の誰かのためにWebサービスを作成していることを意味するわけではありません。代わりに、シングルページアプリを開発する場合は、WebApiコントローラーを使用してajaxを介したデータの取得/投稿を処理します。
通常のコントローラーの使用を妨げるものは何もありませんが、WebApiはSPAに最適です。この手法が使用されているオンラインチュートリアルのいずれかを参照してください。
インターネットアプリケーションプロジェクトテンプレートを使用してMvc4Webアプリケーションを作成したいようです。このテンプレートはフォーム認証を使用し、から継承するコントローラーを作成しSystem.Web.Mvc.Controller
ます。Visual Studio 2012を使用している場合は、このテンプレートがインストールされます(Api Webテンプレートを含む他のいくつかのテンプレートと一緒に)。
コントローラフォルダを右クリック->追加->コントローラし、テンプレートドロップダウンからMVCコントローラを選択します。APIコントローラーを使用する必要はありません。
SPAとは何かを考えると、基本的にはJavaScriptを使用してWebAPIまたはその他のWebサービスからデータを取得するHTMLページです。Bortが言ったように、WebAPI呼び出しはSPAに非常に適しています。
個人的には、シングルページアプリの場合、Update 1でSPAテンプレートを追加する前に、静的な.htmlページを作成し、WebAPIコントローラーにRESTful呼び出しを行うだけでした。