ASP自定义路由没有参数

时间:2013-03-11 13:12:55

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

我的PartnerController中有以下控制器操作,每个操作都有自己的自定义路由。

行动1

public ActionResult GetCardWithShortCode(string voucherShortCode)
  

routes.MapRoute(                   “GetCardWithShortcode”                   “合伙人/店/ getcard / {} voucherShortCode”,                   new {controller =“Partner”,action =“GetCardWithShortCode”}                   );

行动2

public ActionResult GetCard()
  

routes.MapRoute(                   “GetCard”                   “合伙人/店/ getcard”                   new {controller =“Partner”,action =“GetCard”}                   );

第一个路由工作正常,但我无法让第二个路由工作。从理论上讲,当我点击../partner/store/getcard时,应该点击第二个动作?

任何想法?

2 个答案:

答案 0 :(得分:0)

第二个动作未被命中,因为第一个动作被调用而不是{voucherShortCode} null

您可以做的只使用一条路线并执行:

if(String.IsNullOrEmpty(voucherShortCode))
    return RedirectToAction("GetCard")

然后你不需要两条路线。

答案 1 :(得分:0)

添加路线时应该有以下顺序

routes.MapRoute( "GetCard", "partner/store/getcard", new { controller = "Partner", action = "GetCard"} );


routes.MapRoute( "GetCardWithShortcode", "partner/store/getcard/{voucherShortCode}", new { controller = "Partner", action = "GetCardWithShortCode" } );