首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC图中REST的澄清

MVC图中REST的澄清
EN

Stack Overflow用户
提问于 2015-04-11 13:23:11
回答 1查看 424关注 0票数 1

首先,我不知道这是否是这类问题的最佳位置,因为它不是实际的代码。如果我需要使用其他网站,请告诉我。

我正在为一个报告做一个MVC 4架构图,因为这是我使用MVC的第一个项目,我想知道有人能跟我澄清视图和控制器之间的REST (HTTP等),或者控制器建模,因为控制器正在获取和设置数据吗?还应该像在服务器端那样绘制模型,并在客户端绘制视图+控制器吗?

下面是我目前的几个模拟模型。http://postimg.org/image/ebbg2g82b/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-11 18:55:24

  • 首先,ASP.MVC是一个服务器端框架。基本上,在您在视图中编写的控制器、模型和C#(Razor)代码中编写的所有代码都在服务器上执行。
  • REST (具象状态传输)是一种描述客户端与服务器之间通信标准的体系结构风格。您声称您的应用程序实现了REST原则,您声称您支持使用您的应用程序的标准。例如,如果您问熟悉SQL的人(无论是P还是tell ),他们应该使用什么术语来查询数据,他们会告诉您SELECT对吗?您可以对REST principles应用同样的类推:为了从服务器查询数据,应该使用HTTP GET,但另一个规则是HTTP GET不应该修改任何服务器数据。另一个例子是创建一个新对象--应该通过HTTP POST来完成,除了一个动作的执行状态: 201之外,这个对象不应该返回任何东西--对于成功的创建,或者在发生错误时返回500(或任何其他的HTTP错误状态)。

如果我们回到你的问题上:

有人能跟我澄清视图和控制器之间是REST (HTTP等),还是控制器要建模,因为控制器正在获取和设置数据?

REST既不应用于控制器和视图之间,也不应用于控制器和模型之间。REST体系结构通过指定如何访问控制器以及它们应该返回的内容应用于控制器。例如

代码语言:javascript
复制
public class UserController : Controller
{
    [HttpGet]
    public JsonResult Users (int? id)
    {
       //if id is not null return one specific user otherwise return a list of users 
    }

    [HttpPost]
    public ActionResult Users (User user)
    {
       //Create a new user and return an appropriate status: 201/200 on success or an appropriate error status 
    }

    [HttpPut]
    public ActionResult Users (User user)
    {
       //Updates a user and return an appropriate status
    }

    [HttpDelete]
    public ActionResult Users (int id)
    {
       //delete a user and return an appropriate status
    }
}

如果您的MVC应用程序将视图作为响应返回(这是它的主要部分之一),那么应用REST就不那么重要了,所以如果这是一种情况,我就不会那么关心它了。如果您打算将应用程序用作公开API以查询和操作数据的服务,那么ASP.NET WebApi是一种方法,在这种情况下,我将尝试使其成为RESTfull。

关于您的图表:

  • 当您使用“服务器”术语时,您将谈到在服务器上执行的代码。ASP.NET MVC框架,它是一个服务器端的框架,所以控制器、视图和模型都属于服务器端。有各种各样的客户端MVC/MVVM框架,如AngularJs、Ember.js和许多其他框架,因此MVC本身并不意味着它是客户端或服务器端。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29578365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档