我的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时,应该点击第二个动作?
任何想法?
答案 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" } );