我试图将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路由中做到这一点?
答案 0 :(得分:1)
你可以尝试这样的事情。
*
前缀为yoursite.com/book/search/title/nice/author/jim
的最后一个参数类似于 catch-all 参数,该参数会在预订/搜索后将所有内容存储在网址中。
因此,当您请求Split
时,默认模型绑定器会将值“title / nice / author / jim”映射到criteria参数。您可以在该字符串上调用knownCriteria
方法以获取一组url段。然后将值转换为字典并将其用于搜索代码。
基本上,上面的代码将从溢出的数组中读取,并根据您在网址中传递的内容设置conftest.py
字典项的值。