2012-01-03 128 views
0

我使用asp.net MVC3和我想写一条没有尽头的路线.. 我的意思是类似的东西:URL路由 - 无限网址

www.site.com/Cameras/{id}={string}/{id}={string}/{id}={string}/{id}={string}..... 

其中ID代表一个过滤器ID和字符串代表过滤器的值.. 我有很多类型的过滤器,并在未来,我希望能够增加更多的没有任何关系.. 应该如何这种途径应该看?我该如何开始处理这些参数?

回答

1

你需要做的是写一个包罗万象的路线,然后把它解释是这样的:

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

+0

我不确定这个问题是否确实意味着这个问题,但是如果你没有id1或者你只有id6或者什么东西?我自己并没有真正使用过任何这种类型的东西,但是如果你想添加一些参数,你就会想要做的事情 - 把它们也删除... – Chris 2012-01-03 10:27:01

+0

我同意它不是最好的选择但是如果你想要一个不结束的ID列表,那么你就可以解释这一点。 – Richard 2012-01-03 10:33:49

+0

我想你可以让URL像'/ cameras/name = bob/paramX = 28 /'等。或者如果'='是一个特殊字符,那么只是其他一些选择的东西。在mvc3中使用查询字符串皱眉还是会这样做是更好的方式来做任何这样的urls?对不起,如果问题是愚蠢的,但我不使用MVC,并试图吸收像这样的知识:) – Chris 2012-01-03 10:40:49