MVC重要性中的URL

时间:2011-11-02 07:12:05

标签: asp.net-mvc

public ActionResult Summary(int claimId,bool status)

我有超链接。

1.http://localhost:2020/Coverage/Summary/60/true
2.http://localhost:2020/Coverage/Summary?claimId=60&status==true

以上链接都适用于我。

在mvc中,我认为我们需要遵循第一种方式。

此类网址的重要性是什么? 这种类型的URL是否与REST有任何关联?

3 个答案:

答案 0 :(得分:1)

这两种URL格式都被视为REST,因为呈现视图所需的所有数据都作为参数传递给服务器。在今天的REST世界中,第一种URL格式将被视为“干净”的URL,因为它不直接使用请求参数,但实际上它们也会做同样的事情。

答案 1 :(得分:0)

  

在mvc中,我认为我们需要遵循第一种方式。

没必要。

  

此类网址的重要性

主要是视觉效果,在某些情况下,用户可能更容易记住,因为它更短。但要小心,如果你开始将所有参数作为url路径标记放入serious troubles。所以请适度使用。使用整数值可以正常工作,但是如果您开始对每个查询字符串参数使用此参数,即使用户输入的参数也可能会遇到问题。

此外,由于参数的顺序现在很重要,因为它们不再具有名称,如果它们中的一些是可选的,则路由不再能够消除它们之间的歧义。

  

这种类型的URL是否与REST有任何关联?

没有

答案 2 :(得分:0)

第一种方式(基于路径)只有在路径标识所显示的资源时才有意义。 That is the central principle of RESTful URLs。所以像“Id”这样的独特物品在路径上是有意义的。

但是,选项应显示为查询字符串。查询字符串包含keyvalue,这使它们具有更多含义,但不如基于路径的URL重要。

默认的MVC路由将所有“id”值放在路径中,将所有其他值放在查询字符串中。所以我通常会遵循这条路线。在您的情况下,我肯定会建议#2,因为claimIdstatus似乎无法识别Summary