ASP.NET MVC(以及一般的 MVC)的标准模板似乎是{controller}/{action}/{id},但是,在我目前正在从事的项目中,我不确定这是否合适结构体。例如,如果我有一个控制汽车的应用程序,对我来说,拥有以下结构对我来说更有意义:
{car-rego}/{controller}/{action}/{data etc}
这对我来说很有意义,因为汽车(由车牌识别)是我们正在对其执行操作的资源,并且功能的逻辑分离被分离为控制器和操作。这将导致 URL 如下:
/ESX-121/Power/On
/ESX-121/Speed/Set/100
/ESX-121/Speed/Current -- get the current speed (could be /ESX-121/Speed also)
/ESX-121/Turn/Left
/ESX-121/Speed/Set/90
/ESX-121/Power/Off
如果这遵循默认模式,它将如下所示:
/Power/On/ESX-121
/Speed/Set/ESX-121/100
/Speed/Current/ESX-121 -- get the current speed (could be /Speed/ESX-121 also)
/Turn/Left/ESX-121
/Speed/Set/ESX-121/90
/Power/Off/ESX-121
对我来说,就可读 URL 而言,第一个选项更有意义,并且资源标识符位于一个恒定的逻辑位置。例如/Speed/Set/ESX-121/100向我建议有一个标识符为 ESX-121 的速度类型的资源,但事实并非如此,操作是在汽车上进行的。
对于此类情况,您如何构建 URL 以及相关的控制器和操作?您认为这是一个可以接受的解决方案,还是有更好的方法来构建它?