いくつかのレガシーURLをサポートし、それらをコントローラーアクションにマップしようとしています。URLは次のようになります。
/~Home+Office~Note+Pads.html
これが私のルートです:
routes.MapRoute(
"LegacyCategory",
"{path}.html",
new { controller = "LegacyCI", action = "Index", }
);
これらに対処するための私のコントローラー(の始まり)は次のとおりです。
public class LegacyCIController : Controller {
public ActionResult Index(string path) {
if (path == "~Address+Labels") {
return RedirectToAction("Display", "Category", new { id = "AddressLabels" });
}
return RedirectToAction("Index", "Category");
}
}
LegacyCIControllerにブレークポイントを設定し、スタートページをXXX.htmlに設定すると、ブレークポイントがヒットし(そして失敗しif
)、寿命は良好です。しかし、スタートページをに設定しようとすると~Address+Labels.html
、ブレークポイントはヒットせず、Chromeは「おっと、このページは壊れているようです」というページを表示します。
このページは、Visual Studioではなく、自分のマシンのIIS7で実行しています。
このURLは非常に不正な形式であるため、通常のMVCルートでも処理できませんか、それとも他の何か間違ったことをしていますか?