当我创建一个新的 ASP.NET MVC 4.0 项目时,例如单页应用程序或移动设备等......它们都有从 ApiController 继承的控制器类。
我不需要向其他人公开 Web 服务。如果登录,我只想运行一个带有私有 Web 应用程序的公共网站。我不想要 ApiController,但我想要一个单页应用程序。
他们为什么这样做?
当我创建一个新的 ASP.NET MVC 4.0 项目时,例如单页应用程序或移动设备等......它们都有从 ApiController 继承的控制器类。
我不需要向其他人公开 Web 服务。如果登录,我只想运行一个带有私有 Web 应用程序的公共网站。我不想要 ApiController,但我想要一个单页应用程序。
他们为什么这样做?
WebApi 并不一定意味着您正在为其他人创建 Web 服务。相反,当您开发单页应用程序时,您将使用 WebApi 控制器来处理通过 ajax 获取/发布数据。
没有什么可以阻止您使用常规控制器,但 WebApi 非常适合 SPA。请参阅使用此技术的任何在线教程。
听起来您想使用Internet 应用程序项目模板创建一个 Mvc4 Web 应用程序。此模板使用表单身份验证并创建从System.Web.Mvc.Controller
. 如果您使用的是 Visual Studio 2012,则安装此模板(连同其他一些模板,包括 Api Web 模板)。
右键单击您的控制器文件夹 -> 添加 -> 控制器,然后从模板下拉列表中选择一个 MVC 控制器。您不必使用 API 控制器。
如果您想到 SPA 是什么,它本质上是一个 HTML 页面,它使用 JavaScript 从 WebAPI 或其他一些 Web 服务获取数据。正如 Bort 所说,Web API 调用非常适合 SPA。
就个人而言,对于单页应用程序,在他们在 Update 1 中添加 SPA 模板之前,我只需创建一个静态 .html 页面并对我的 WebAPI 控制器进行 RESTful 调用。