писать свой у меня есть действие называется контакт в домашнем контроллереASP.NET MVC 3.0 Url
<mysite>/Home/Contact
Я хочу, чтобы иметь возможность, набрав <mysite>/Contact
, чтобы получить тот же результат, как <mysite>/Home/Contact
Можно ли сделать с mvc 3.0 или RouteMagic?
В настоящее время я не пытаюсь этого добиться, как это, но не повезло:
Маршруты:
routes.MapRoute(
"Contact", // Route name
"Contact", // URL with parameters
new { controller = "Home", action = "Contact", id = UrlParameter.Optional } // Parameter defaults
);
RouteMagic:
var route = routes.MapRoute("new", "Contact");
routes.Redirect(r => r.MapRoute("old", "Home/Contact"))
.To(route);
Update
Ok пользовательские маршруты должен быть определен первым, теперь он работает (в случае пользовательских маршрутов), но там я s появился новый вопрос: why route magic returning error
Server Error in '/' Application.
Value cannot be null or empty.
Parameter name: controllerName
спасибо, я подумал об этом, но был немного ленив, чтобы попробовать. – Joper
@Joper - маршрут по умолчанию должен быть последним добавленным маршрутом, чтобы вначале были сопоставлены все определенные маршруты. – tvanfosson
Возможно, у вас есть идеи, почему RouteMagic в этом случае возвращает ошибку «Значение не может быть пустым или пустым. Имя параметра: controllerName ' – Joper