2016-07-01 6 views
0

У меня есть частичный вид, который имеет ActionLink в представленииRenderAction в макете вызывает ActionLinks к ошибкам

@Html.ActionLink("User Admin Controller", "Index", "UserAdmin", new { Area = "Security" }, new { }) 

Когда я положил RenderAction Helper на просмотр страницы, чтобы сделать частичный вид, то ActionLink работает отлично

@{Html.RenderAction("ApplicationMenu", "Layout"); } 

Однако, когда я положил Визуализировать Действие Helper в Layout View, а затем нажав на ссылку действий в любом представлении страницы или расположение вызывает сообщение об ошибке

Контроллер для пути '/ Security/UserAdmin' не был найден или не реализует IController.

Похоже, что причиной того, что целевая страница вызывает тот же помощник RenderAction, является проблемой?

Спасибо за вашу помощь

Earl

+0

Обращаем ваше внимание, что тег-контроллер модели - это вопросы о шаблоне. Существует определенный тег для реализации ASP.NET-MVC. –

ответ

0

Редактировать ActionLink так:

@Html.ActionLink("User Admin Controller", "Index", "UserAdmin", new { Area = "" }, new { }) 

При использовании Areas, вы всегда должны указать область вашего вызываете в ваших ActionLinks путем добавления маршрута значение, как указано выше. Если ссылка находится за пределами области (как в вашем случае), просто используйте пустой параметр для этой области.

+0

@irstxtr, пожалуйста, поддержите и примите этот ответ, если этот ответ поможет вам, поэтому люди знают, что это правильный ответ. –

+0

Али, спасибо за ваш ответ. Как вы можете видеть в вопросе, actionlink уже имеет указанную область. Поскольку вы можете прочитать мой ответ, он имеет какое-то отношение к маршрутизации, но может потребоваться изменить таблицу маршрутов. – earlxtr

1

Я считаю, что это было связано непосредственно с маршрутизацией. У меня был домашний контроллер за пределами моих областей и всего остального в областях. Когда я создал общую область и переместил в нее домашний контроллер, все сработало. Возможно, я решил это, изменив таблицу маршрутизации, но это выполнило свою работу.