Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 Url路由-无限Url_Asp.net Mvc 3_Asp.net Routing - Fatal编程技术网

Asp.net mvc 3 Url路由-无限Url

Asp.net mvc 3 Url路由-无限Url,asp.net-mvc-3,asp.net-routing,Asp.net Mvc 3,Asp.net Routing,我使用asp.net mvc3,我想写一条没有终点的路线。。 我的意思是: www.site.com/Cameras/{id}={string}/{id}={string}/{id}={string}/{id}={string}..... 其中,id表示筛选器id,字符串表示该筛选器的值。。 我有很多类型的过滤器,在未来我希望能够添加更多的过滤器,而不需要任何依赖性。。 这种路线应该是什么样子?如何开始处理这些参数?您需要做的是编写一个catchall路由,然后将其解释为: routes.Ma

我使用asp.net mvc3,我想写一条没有终点的路线。。 我的意思是:

www.site.com/Cameras/{id}={string}/{id}={string}/{id}={string}/{id}={string}.....
其中,id表示筛选器id,字符串表示该筛选器的值。。 我有很多类型的过滤器,在未来我希望能够添加更多的过滤器,而不需要任何依赖性。。
这种路线应该是什么样子?如何开始处理这些参数?

您需要做的是编写一个catchall路由,然后将其解释为:

routes.MapRoute("Cameras", "cameras/{*url}",
      new { controller = "Cameras", action = "Index" }
  );



public ActionResult Index(string url)
{
     var ids = url.split('/');
     // now do what you need with the ids

}
您应该使用如下URL:

routes.MapRoute("Cameras", "cameras/{*url}",
      new { controller = "Cameras", action = "Index" }
  );



public ActionResult Index(string url)
{
     var ids = url.split('/');
     // now do what you need with the ids

}

/摄像头/id1/id2/id3/id4

我不确定这个问题是否真的是这个意思,但是如果你没有id1或者你只有id6之类的东西怎么办?我自己并没有真正使用过这类东西,但我觉得如果你想简单地添加参数-也删除它们,你会想这样做…我同意这不是最好的选择,但如果你想要一个无结尾的ID列表,你可以解释它。我想你可以只制作URL类似于
/cameras/name=bob/paramX=28/
等,或者如果
=
是一个特殊字符,那么就选择其他一些东西。在mvc3中使用查询字符串是不受欢迎的,还是这样做实际上是更好的任意URL方式?抱歉,如果这个问题很愚蠢,但我不使用MVC,我正试图像这样吸收有关MVC的知识:)还有其他“更聪明”的解决方案吗?