我正在尝试支持一些遗留 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 只是呕吐并向我显示一个页面,上面写着“哎呀,这个页面似乎已损坏”。
我在我的机器上通过 IIS 7 运行此页面,而不是 Visual Studio。
这个 URL 是否格式错误以至于常规的 MVC 路由甚至无法处理它,还是我做错了什么?