Вы должны изменить
"UI.Controllers"
до
new[] { "UI.Controllers" }
на вашем втором маршруте.
Если вы указываете только одну строку (не массив), вы получаете неправильную перегрузку функции MapRoute
- вместо MapRoute(RouteCollection, String, String, Object, String[])
, которая принимает список пространств имен как последний параметр, который вы получаете MapRoute(RouteCollection, String, String, Object, Object)
, который ожидает ограничения как последний параметр. Строка "UI.Controllers" не является правильной спецификацией ограничения => вы получаете ошибку.
Кроме того, как @Pankaj предложил, ваш пользовательский маршрут должен идти до значения по умолчанию, а Verify должен быть без "{}".
Полный код:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"AccountVerify",
"Account/Verify/{userName}/{authorisationToken}",
new { controller = "Account", action = "Verify", userName = "", authorisationToken = "" },
new [] { "UI.Controllers" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } ,// Parameter defaults
new[] { "UI.Controllers" }
);
}