ASP.NET MVC 3 - Ajax.ActionLink() Маршрутизация

Этот ActionLink отлично работает, когда он находится за пределами области, но как только я переместил его в него, он начал добавлять имя контроллера в URL:TrainingandDevelopment/MakeCall

Он должен просто отображать примитивное представление, которое он вызывает.

Ajax.ActionLink("Click to Get HRMS Folder", "MakeCall", new { folderName = "HRMS" }, new AjaxOptions()
                                                    {
                                                        UpdateTargetId = "placeHolder",
                                                        InsertionMode = InsertionMode.Replace,
                                                        LoadingElementId = "indicator",
                                                        HttpMethod = "POST",
                                                    })

2 ответа

Добавьте пустую область в значения вашего маршрута

Ajax.ActionLink("Click to Get HRMS Folder", 
                "MakeCall", 
                new { folderName = "HRMS", area= ""}, 
                new AjaxOptions() {
                                      UpdateTargetId = "placeHolder",
                                      InsertionMode = InsertionMode.Replace,
                                      LoadingElementId = "indicator",
                                      HttpMethod = "POST",
                                  })

MSDN - при создании приложения ASP.NET MVC, включающего области, необходимо определить маршруты, которые отправляют запросы в соответствующую область, на основе URL-адреса запроса. Чтобы зарегистрировать маршрут, который может отвечать на специфичные для области запросы, вы добавляете в маршрут класс Routes. Ваш класс Routes наследуется от класса AreaRegistration. Вы можете присвоить области имя, переопределив свойство AreaName, и настроить маршруты для области, переопределив метод RegisterArea.

Итак, вы должны добавить файл rout.cs в папку вашей области.

Дополнительная информация

Другие вопросы по тегам