私はいくつかの従来のURLをサポートし、それらをコントローラアクションにマップしようとしています。特殊文字を使用したMVCルート
/~Home+Office~Note+Pads.html
ここに私のルートです:私はブレークポイントを設定した場合
public class LegacyCIController : Controller {
public ActionResult Index(string path) {
if (path == "~Address+Labels") {
return RedirectToAction("Display", "Category", new { id = "AddressLabels" });
}
return RedirectToAction("Index", "Category");
}
}
:
routes.MapRoute(
"LegacyCategory",
"{path}.html",
new { controller = "LegacyCI", action = "Index", }
);
は、ここでそれらに対処するために私のコントローラ(の始まり)ですURLは次のようになりLegacyCIControllerを起動し、開始ページをXXX.htmlに設定した場合、ブレークポイントがヒットし(そして失敗すると、if
に失敗します)、人生は良いです。しかし、開始ページを~Address+Labels.html
に設定しようとすると、ブレークポイントは適用されず、Chromeは単にpukesを表示し、「このページは壊れているようです」というページを表示します。
私はVisual Studioではなく、私のマシン上でIIS 7を通してこのページを実行しています。
このURLは、通常のMVCルートでも処理できない形式であるか、間違っていますか?
うわー、それはかなりジャックされたファイル名です。 – Tejs
@Tejs - はい、そうです。レガシーのものを扱うことは、人生の本当の楽しさの1つです:) –
私の理論は、IISが要求をバウンスされているということです。IIS7にはブラックリストに載っているURL文字セットがあると思います。 – Tejs