【问题标题】:Why does every new asp.net mvc 4 project template base on WebApi Controller为什么每个新的asp.net mvc 4项目模板都基于WebApi Controller
【发布时间】:2013-02-01 20:53:52
【问题描述】:

当我创建一个新的 ASP.NET MVC 4.0 项目时,例如Single Page App 或 Mobile 等...它们都有从 ApiController 继承的 Controller 类。

我不需要向其他人公开 Web 服务。如果登录,我只想运行一个带有私有 Web 应用程序的公共网站。我不想要 ApiController,但我想要一个单页应用程序。

他们为什么要那样做?

【问题讨论】:

    标签: asp.net-mvc asp.net-web-api


    【解决方案1】:

    WebApi 并不一定意味着您正在为其他人创建 Web 服务。相反,当您开发单页应用程序时,您将使用 WebApi 控制器来处理通过 ajax 获取/发布数据。

    没有什么可以阻止您使用常规控制器,但 WebApi 非常适合 SPA。请参阅使用此技术的任何在线教程。

    【讨论】:

    • “相反,当您开发单页应用程序时,您将使用 WebApi 控制器来处理通过 ajax 获取/发布数据。”好吧,我所有的控制器在没有 WebApi 控制器的情况下使用 ajax 获取或返回数据。 WebApi 和 Ajax 有什么关系?
    • @Elisa 我和你在一起。 WebApi 与 Ajax 无关。我认为您的问题的答案实际上是微软只是想推广他们的新事物,并决定默认将其包含在所有新项目中。就这样。是的,WebApi 对 Ajax 很方便,但返回 Json 的常规 Controller 也是如此。
    • 是什么让您跳到“WebApi 与 ajax 有什么关系?” WebApi 不绑定到 ajax,但单页应用程序绑定。控制器或 ApiControllers,您将使用 ajax 来调用操作,不是吗?当然,您可以使用普通控制器中的 JsonResults,但 WebApis 会自动返回 JSON/xml/whatever,而不是依赖 ***Result
    • @Bort 您的声明:“您将使用 WebApi 控制器来处理通过 ajax 获取/发布数据。”让我跳起来......
    • 这个想法,至少在我看来,WebApi 背后的想法是将处理传输数据的操作和返回 html 的操作分开。 WebApi 允许您返回对象并将它们序列化为 JSON 或任何请求要求的内容。
    【解决方案2】:

    听起来您想使用 Internet Application 项目模板创建一个 Mvc4 Web 应用程序。此模板使用表单身份验证并创建从System.Web.Mvc.Controller 继承的控制器。如果您使用的是 Visual Studio 2012,则安装此模板(连同其他一些模板,包括 Api Web 模板)。

    【讨论】:

      【解决方案3】:

      右键单击您的控制器文件夹 -> 添加 -> 控制器,然后从模板下拉列表中选择一个 MVC 控制器。您不必使用 API 控制器。

      如果您想到 SPA 是什么,它本质上是一个 HTML 页面,它使用 JavaScript 从 WebAPI 或其他一些 Web 服务获取数据。正如 Bort 所说,Web API 调用非常适合 SPA。

      就个人而言,对于单页应用,在他们在 Update 1 中添加 SPA 模板之前,我只需创建一个静态 .html 页面并对我的 WebAPI 控制器进行 RESTful 调用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-07
        • 1970-01-01
        • 2013-03-02
        • 2022-06-11
        • 2017-11-23
        • 2013-09-24
        相关资源
        最近更新 更多