这是我的global.asax文件中的两个路由.我正在尝试进入第二条路线,我收到一个默认的404资源未找到错误.
当我删除第一条路线(在此示例中列出)时,它可以工作.
我该如何解决这个问题?
// GET: /user/PureKrome/Alert/69 routes.MapRoute( "User-Alert-Details", "user/{displayName}/alert/{alertId}", new { controller = "Account", action = "AlertDetails", alertId = 0 }); // GET: /user/PureKrome/Alert/create routes.MapRoute( "User-Alert-Create", "user/{displayName}/alert/create", new { controller = "Account", action = "AlertCreate" });
Erv Walter.. 20
您的第一条路线是"贪婪"路线,并乐意接受"创建"作为最后一个参数中的alertId.看来您希望alertId参数仅为数字,因此您应该添加一个约束来告诉路由系统该最后一个参数必须是数字.
请参阅本教程.
例如:
// GET: /user/PureKrome/Alert/69 routes.MapRoute( "User-Alert-Details", "user/{displayName}/alert/{alertId}", new { controller = "Account", action = "AlertDetails", alertId = 0 }, new { alertId = @"\d+" }); // GET: /user/PureKrome/Alert/create routes.MapRoute( "User-Alert-Create", "user/{displayName}/alert/create", new { controller = "Account", action = "AlertCreate" });
请注意,您也可以反转路径的顺序,但即使您这样做,如果希望alertId始终为数字,仍应包含正确性约束.
您的第一条路线是"贪婪"路线,并乐意接受"创建"作为最后一个参数中的alertId.看来您希望alertId参数仅为数字,因此您应该添加一个约束来告诉路由系统该最后一个参数必须是数字.
请参阅本教程.
例如:
// GET: /user/PureKrome/Alert/69 routes.MapRoute( "User-Alert-Details", "user/{displayName}/alert/{alertId}", new { controller = "Account", action = "AlertDetails", alertId = 0 }, new { alertId = @"\d+" }); // GET: /user/PureKrome/Alert/create routes.MapRoute( "User-Alert-Create", "user/{displayName}/alert/create", new { controller = "Account", action = "AlertCreate" });
请注意,您也可以反转路径的顺序,但即使您这样做,如果希望alertId始终为数字,仍应包含正确性约束.