При определении маршрутов вы не можете использовать /
в начале маршрута:
routes.MapRoute("OpenCase",
"/ABC/{controller}/{key}/{group}", <-- Bad; see / at beginning
new { controller = "", action = "OpenCase" },
new { key = @"\d+", group = @"\d+" }
);
routes.MapRoute("OpenCase",
"ABC/{controller}/{key}/{group}", <-- Good; No / at beginning
new { controller = "", action = "OpenCase" },
new { key = @"\d+", group = @"\d+" }
);
Попробуйте это:
routes.MapRoute("OpenCase",
"ABC/{controller}/{key}/{group}",
new { controller = "", action = "OpenCase" },
new { key = @"\d+", group = @"\d+" }
);
Тогда ваше действие должно выглядеть следующим образом:
public ActionResult OpenCase(int key, int group)
{
//do stuff here
}
Похоже, вы соединяете stepNo
и "ABC", чтобы получить контроллер, который ABC1
.Вот почему я заменил этот раздел URL на {controller}
.
Поскольку у вас также есть маршрут, который определяет «ключ» и «группу», вышеприведенный маршрут также перехватит ваш начальный URL и отправит его действию.