非常に奇妙なルーティングの問題があります。
エリアを使用しているASP.NETMVC3サイトがあります。アセットエリアに次のルートを設定しています。
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
null,
"Assets/{controller}/{action}/{code}",
null,
new { code = @"(\w{2,3}$)" }
);
context.MapRoute(
"Assets_default",
"Assets/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
次のURLをリクエストすると、完全に機能します
http://site.com/Assets/Gallery/GetByCode/AEP
http://site.com/Assets/Gallery/GetByCode/MEC
http://site.com/Assets/Gallery/GetByCode/GP
http://site.com/Assets/Gallery/GetByCode/BR2
http://site.com/Assets/Gallery/GetByCode/ZZZ
http://site.com/Assets/Gallery/GetByCode/123
しかし、このURLをリクエストすると、「404-リソースが見つかりません」というエラーが表示されます。
http://site.com/Assets/Gallery/GetByCode/PRN
http://site.com/Assets/Gallery/GetByCode/prn
私が試した他のすべてのURLは機能します-問題があるのはPRNだけのようです。
GalleriesController> GetByCodeアクションの先頭にブレークポイントを設定しましたが、PRNルートはアクションを入力しようとさえしません(404エラーが示唆しているように)。
PRNがルートで機能しない理由を誰かが知っていますか?または、他に何を調査することができますか?
助けてくれてありがとうサーン