1

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

行动 1

public ActionResult GetCardWithShortCode(string voucherShortCode)

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

行动 2

public ActionResult GetCard()

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

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

有任何想法吗?

4

2 回答 2

0

第二个动作没有被命中,因为第一个动作是用 {voucherShortCode} null 调用的

您可以做的是仅使用一条路线并执行以下操作:

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

那么你不需要两条路线。

于 2013-03-11T13:16:21.743 回答
0

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

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


routes.MapRoute( "GetCardWithShortcode", "partner/store/getcard/{voucherShortCode}", new { controller = "Partner", action = "GetCardWithShortCode" } );
于 2013-03-11T13:16:32.167 回答