我很好奇为什么这条路线不起作用:
routes.MapRoute("Tracking",
"{mailingId}/{subject}/{listItemId}/MailReport.{fileExtension}",
new { controller = "Mailing", action = "OpenerImage", subject = UrlParameter.Optional },
new
{
mailingId = new NonEmptyGuidRouteConstraint(),
listItemId = new NonEmptyGuidRouteConstraint(),
fileExtension = @"(aspx|php|asp|html|htm|json|xml)"
});
参数只获取fileExtensions
列表中的第一个参数,所以如果我进入带有 ..../MailReport.php 的页面,我会收到 404 错误。
更新:
我认为这更像是一个 IIS 问题而不是路由问题。我认为 IIS 试图在路由引擎之前解释扩展。只是一个想法,因为我也尝试创建自定义路由约束,它只适用于 ASPX 扩展。