好的,我在阅读有关MVC的文章时一直在互联网上听到这句话:“既然Asp.NET MVC是REST,那么很容易消费......等等。”我从来没有听说过Asp.NET Webforms这样的事情,它让我想知道什么是REST。
据我所知,REST表示Representational State Transfer,用户在浏览器中看到的是状态。但我认为这并不意味着它总是像MVC那样应该像RPC一样。它可以是服务器提供的物理页面,就像它在Asp.NET WebForms(Default.aspx)中的工作方式一样,只要它返回一个状态表示,就称为REST。
所以如果我的理解很好,那么webforms也不应该是REST吗?
Uggh,我有点困惑......
提前致谢....
编辑并简要回答: 好的伙计们,听听:)这是我认为正确的答案:
我们知道REST应符合以下基本原则:
* Give every “thing” an ID
* Link things together
* Use standard methods
* Resources with multiple representations
* Communicate statelessly
据我们所知,webforms使用高回发,会话来了解以前的请求,你可以无数回发以获得类似的东西:
search.aspx
并发布dropdownmenu
的所选值,并且没有获取,只有来自服务器的帖子和回发。
嗯,它显然不能是宁静的建筑风格。
答案 0 :(得分:1)
这是令人惊讶的声明。如果我在ASP.NET MVC中使用session,它根本就不是REST。
编辑:
REST无国籍。如果我使用会话,那么进阶将成为有状态的。后续请求将能够使用状态(来自会话),因此HTTP响应将不包含整个状态。
答案 1 :(得分:1)
MVC中URL路由的目标是搜索引擎优化和用户友好的URL。它不是任何形式上的REST协议,因为它不使用HTTP动词(除了通常的GET和POST之外),并且不是为数据设计的。 URL对应于控制器和操作,而不是任何数据模式。
MVC还将优先考虑直接映射到文件的任何URL,因此仍然可以使用WebForm类型的路由。
WCF确实支持REST,但是作为数据传输协议,而不是页面映射机制。
您可能想要阅读REST;它实际上与ASP.NET MVC路由完全分开。