如何添加额外的路由?

3
这是我的默认路由。
context.MapRoute(
"CreditReview",
"Site/{sitecode}/CreditReview/{controller}/{action}/{id}",
new { action = "Index", id = "" }
);

我想添加“状态(status)”功能。这是我目前的代码,但它并没有起作用。由于我之前没有接触过路由,所以如果这个问题很简单,请原谅。

context.MapRoute(
 "CC",
 "Site/{sitecode}/CreditReview/{controller}/{status}/{action}/{id}",
 new { action = "Index", id = "" });

1
你把它们放在什么顺序?我认为第二个应该排在第一位。最不具体的路由应该排在最具体的路由之前。另外,你能否给出一个示例URL,以便你可以为MapRoutes中的两个路由进行路由? - Ben Hoffman
我把默认路由列在了最后。一个匹配默认路由的url示例如下: http://localhost/CreditCoachPlus.Site/Site/ABC123/CreditReview/PersonalInformation/Info我试图让以下示例工作: http://localhost/CreditCoachPlus.Site/Site/ABC123/CreditReview/PersonalInformation/Info/Correct - user270564
2个回答

0
首先,规则的顺序很重要,自定义规则必须在默认规则之前添加。
然后,如果这样还不行,您可以尝试修改规则,使其更加明显。 编辑 如果这些是您要匹配的路由。
http://localhost/CreditCoachPlus.Site/Site/ABC123/CreditReview/PersonalInformation/Info
http://localhost/CreditCoachPlus.Site/Site/ABC123/CreditReview/PersonalInformation/Info/Correct

那为什么不将状态添加到您的默认规则中并设置默认状态呢?

context.MapRoute(
    "CreditReview",
    "Site/{sitecode}/CreditReview/{controller}/{action}/{id}/{status}",
    new { action = "Index", id = "", status="notCorrect" }
);

我将默认路由列在最后。与默认路由匹配的url示例如下: http://localhost/CreditCoachPlus.Site/Site/ABC123/CreditReview/PersonalInformation/Info我试图让以下示例正常工作: http://localhost/CreditCoachPlus.Site/Site/ABC123/CreditReview/PersonalInformation/Info/Correct - user270564

0
除了Obalix的建议外,Phil Haack的routing debugger对于这些问题非常有用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接