(Прежде чем начать: Я знаю о this и this. Я хотел бы найти более краткое решение - если это возможно - для немного более конкретной проблемы)
Я переписываю старое приложение Webforms на MVC. Как обычно, никакие пермалинки не должны быть нарушены.
Я использую стандартные {controller}/{action}/{id}
пути. Наследственные пути обычно SomePage.aspx?ID=xxx
, и у меня есть один конкретный случай, когда Foo.aspx
является списком Bar
(новый URL: /Bar или /Bar/Index) и
Foo.aspx? ID=xxx
является деталью Bar
(новый URL: /Bar/View/xxx)
Одним из возможных обходных путей является добавление следующего перед Default MapRoute
:
routes.MapRoute("Bar View", "Foo.aspx",
new { controller = "Bar", action = "View" });
А затем определение соответствующего действия в BarController:
public ActionResult View(int? id)
{
if (id == null)
return RedirectToAction("Index");
return View();
}
С этим есть две проблемы:
Я не против отображения старых URL вручную (мне не нужно общее решение, и есть только около 8 страниц)
Это новый проект, поэтому я ни к чему не привязан.