ASP.NET MVC路由:URL中的多个参数

时间:2016-05-27 21:24:49

标签: asp.net asp.net-mvc asp.net-mvc-routing

我试图将Web服务从PHP移植到ASP.NET MVC。当然,这意味着我必须复制现有的API。

目前,以其规范形式的电话会像:

http://example.com/book/search?title=hamlet&author=shakes

但是,它也接受另一种形式:

http://example.com/book/search/title/hamlet/author/shakes

大约有五种不同的搜索条件,都是可选的,它们可以按任何顺序给出。

如何在ASP.NET MVC路由中做到这一点?

1 个答案:

答案 0 :(得分:1)

你可以尝试这样的事情。

*

前缀为yoursite.com/book/search/title/nice/author/jim的最后一个参数类似于 catch-all 参数,该参数会在预订/搜索后将所有内容存储在网址中。

因此,当您请求Split时,默认模型绑定器会将值“title / nice / author / jim”映射到criteria参数。您可以在该字符串上调用knownCriteria方法以获取一组url段。然后将值转换为字典并将其用于搜索代码。

基本上,上面的代码将从溢出的数组中读取,并根据您在网址中传递的内容设置conftest.py字典项的值。