【发布时间】:2011-12-27 08:10:59
【问题描述】:
asp.net 4.0如何在路由中制作一个页面的多个url?
示例-:我有4个参数1.Sector,2.Area,3.City,4.Date
所以我有很多网址
jobs/Sector,
jobs/Area,
jobs/City,
jobs/Date,
jobs/Sector/City,
jobs/Sector/Area/City etc.
所有这些网址都处理一页(~/jobSearch.aspx)
所以它应该是处理书签并且不会在它们之间产生任何歧义?
【问题讨论】:
-
但是你的代码怎么知道你得到了什么?如果你得到一个 URL
/jobs/NewYork- 你怎么知道NewYork是一个城市、部门还是地区?我看不出这个映射将如何正常工作——你可能需要重新考虑你的 URL 设计...... -
@marc_s,总的来说,我同意您对 URL 重新设计的建议,但此方案可能适用于一些智能/启发式映射 - 例如,可以匹配一个术语“NewYork”以查看是否它的地区或部门或城市。如果它既是区域又是城市,则可以显示两者的结果(或根据某些排名选择一个 - 比如说启发式数据,例如搜索中的流行度)。说了这么多,我怀疑OP是否有这样的想法!
-
@VinayC:是的——你可以有一些启发式方法——但
NewYork是一个地区还是一个城市?当前的 URL 设计留下了太多的解释空间 - 在我看来不够具体/不够清晰...... -
abjectly marc_s 我的问题是一样的,我们如何匹配 New york 是城市、地区或部门,因为如果用户搜索工作 job/media/newyork/23-02-2011 所以路线应该是匹配,如果您有任何建议,应该处理该页面,请给我谢谢您
-
@HemantUpadhyay,您应该配置路由,以便表单 job/* 中的所有 URL 都应该路由到您的页面。在页面代码中,由于需要非常灵活的映射,所以需要自己解析 URL 来进行映射。例如,如果在 URL 中只指定了一个术语,那么您需要确定该术语是否为 city/area/sector(例如,通过查找现有的 city/area/sector 是否与之匹配)。