MVC url路由键值对参数
我知道我可以创建一个支持此url
user / idex / userId / 1 / categoryId / abc
ActionResult Index (String userId, String categoryID)
的url映射我想知道是否可以推广此机制并编写一个映射,该映射可以支持作为键/值对传递的所有基于 url 的参数。
控制器 / 操作 / *key1 /值1/ key2 / value2 ....*
通过单个映射,我需要支持所有这些 url
user / idex / userId / 1 / CategoryId / abc
ActionResult Index (String userId, String categoryID)
Category / idex / catId / 1 / groupId / 2
ActionResult Index (catId String, String groupId)
类别 / idex / catId / 1 / groupId / 2
ActionResult Index (catId String, String groupId)
新闻 / 详情 / 新闻 ID / 1 / 群组 ID / 2 / 选项 / 3
ActionResult Index (newsid String, String groupId, String optionId)
I know that I can create a url mapping that supports this url
user / idex / userId / 1 / categoryId / abc
ActionResult Index (String userId, String categoryID)
What I wonder is whether it is possible to generalize this mechanism and write a single mapping that can support all url-based parameters passed as key / value pairs.
controller / action / *key1 / value1 / key2 / value2 ....*
With a single mapping I need to supported for example all these url
user / idex / userId / 1 / categoryId / abc
ActionResult Index (String userId, String categoryID)
category / idex / catId / 1 / groupId / 2
ActionResult Index (catId String, String groupId)
category / idex / catId / 1 / groupId / 2
ActionResult Index (catId String, String groupId)
news / detail / newsId / 1 / groupId / 2 / option / 3
ActionResult Index (newsid String, String groupId, String optionId)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不认为你可以这样做,但你可以这样做:
但是你想要使用它的所有操作,这些方法应该被定义为
给出 news/detail/1/2和类别/索引/1/2
I don't think you can do it that way, but you could do:
But then all the actions you want to use this for, there methods should be defined as
giving news/detail/1/2 and category/index/1/2
我做到了!!
使用自定义值提供者!
我将值对参数的格式
从 key1 / value1 / key2 / value2
更改为更清晰的 key1=value1;key2=value2
当然,可以使用正则表达式进行增强。
然后,在global.asax中
I did it!!
using a custom value provider!
I changed the format of the value pairs parameter
from key1 / value1 / key2 / value2
to a more clear key1=value1;key2=value2
Sure, it can be enanced using regex.
Then, in the global.asax