Как связать из View in Area с корневым контроллером?

Я новичок в MVC, все еще изучаю тонкости, конвертируя приложение .NET в MVC.

Мне не удается установить ссылку на другой Action в моем controller со страницы в разделе "Area".

Я создал Areas и все еще настроил маршрут по умолчанию.

Area имеет следующую структуру:

Area
  - Admin
    - Controller
        UserController.cs
    -Model
    -Views
        User
           Index.cshtml

Index.cshtml имеет ссылку, которая должна вызывать "Index" действие в AccountController, чтобы открыть "Default" представление:

<div class="pagenavigator">@Html.ActionLink("Main Menu", "Index", new { area = "", controller="Account" })</div>

Структура приложения по умолчанию следующая:

- Controller
     AccountController.cs
- Views
     - Account
          Default.cshtml 
          Login.cshtml

Моя структура по умолчанию также имеет папку контроллера, в которой есть контроллер с действием входа (по умолчанию), установленным в RouteConfig.cs:

routes.MapRoute(
   name: "Default",
   url: "{controller}/{action}/{id}",
   defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
);

Вот Account Controller:

public class AccountController : Controller
{
    public ActionResult Login(string returnUrl)
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("Web Security Administration Portal<br/><br/>");
        ViewBag.ReturnUrl = returnUrl;
        ViewBag.Message = sb.ToString();
        return View();
    }

    public ActionResult Index()
    {
        return View("Default");
    }

    public ActionResult Login(LoginModel model)
    {
        if (ModelState.IsValid)
        {
           bool authenticated = Security.AuthenticateLANUser(model.UserName, model.Password);
           if (!authenticated)
           {
               Session["authenticated"] = false;
               System.Text.StringBuilder errorMsg = new System.Text.StringBuilder();
               errorMsg.Append("Invalid Login/Password entered.");
               errorMsg.Append("We were not able to authenticate you in in Active Directory based on the information entered, ");
               errorMsg.Append("but we recorded your attempt for audit purposes.");

               ModelState.AddModelError("", errorMsg.ToString());
               return View(model);
            }
            else
            {
                return View("Default");
            }
        }

        ModelState.AddModelError("", "The user name or password provided is incorrect.");
        return View(model);
    }
}

Что мне делать, если мне нужно установить ссылку на "Default" представление, определенное по маршруту приложения по умолчанию, из Index.cshtml, определенного в Area, поэтому, когда я нажимаю ссылку, мой "AccountController" вызывается с правильным "Index" действием?

Короче говоря, мне нужно найти способ связи из раздела «Область» с действием контроллера в разделе приложения по умолчанию, чтобы вызвать другое правильное действие, которое не указано в сопоставлении маршрутов по умолчанию. Прямо сейчас ссылка не работает.

Когда я просматриваю ссылку в источнике, я вижу следующее: <a href="/Account/Index">, но когда я нажимаю на ссылку, я получаю сообщение об ошибке: Ресурс не может быть найден с запрошенным URL: /login.aspx

Вот AdminAreaRegistration:

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Admin_default",
            "Admin/{controller}/{action}/{id}",
            new { action = "Index", id = UrlParameter.Optional }
        );
    }

comment
Вы также можете указать область в ActionLink: stackoverflow.com/a/2036325/1373170 Также в этом другом вопросе вы найдет, как связать что-то за пределами области, используя area = ""   -  person Pablo Romeo    schedule 11.05.2015
comment
Мне также нужно вызвать другое действие в этом контроллере. В настоящее время по умолчанию используется значение, указанное в RouteConfig.cs   -  person gene    schedule 11.05.2015
comment
Вы уверены, что используете правильное переопределение ActionLink? Возможно, вам потребуется добавить new {}, как указано в комментариях к этому ответу.   -  person Pablo Romeo    schedule 11.05.2015
comment
Да, я сделал. Также ссылка показывает правильный путь, но при нажатии на нее происходит поиск другого действия. См. Измененный вопрос. Думаю, ищет маршрут по умолчанию, указанный в RouteConfig.cs   -  person gene    schedule 11.05.2015
comment
Вы также настроили маршрут для своей админки? stackoverflow.com/a/15616483/1373170 Кроме того, если возможно, попробуйте добавить полную информацию об ошибке stacktrace, которая может пролить немного света на проблему. Кроме того, тот факт, что в нем упоминается login.aspx, немного странен. Вы уверены, что это не определено в разделе проверки подлинности форм вашего web.config как loginUrl?   -  person Pablo Romeo    schedule 11.05.2015
comment
Я получаю сообщение об ошибке, обычное HTTP 404 сообщение о том, что ресурс не может быть найден и что Requested URL: /login.aspx. Рут для админа настроен по умолчанию и я там ничего не менял. Он указывает на правильное действие и находит правильный контроллер. Единственная проблема заключается в том, что когда я нажимаю на ссылку, он не может найти действие, указанное для контроллера по умолчанию.   -  person gene    schedule 11.05.2015
comment
Я добавил AdminAreaRegistration к своему вопросу   -  person gene    schedule 11.05.2015
comment
@Pablo Romero, Похоже, приложение не указывает на правильный маршрут, но мне кажется, что все указано правильно   -  person gene    schedule 12.05.2015
comment
Что-то кажется странным перенаправлением на login.aspx. Вы уверены, что не используете проверку подлинности с помощью форм и указали URL-адрес в файле web.config?   -  person Pablo Romeo    schedule 12.05.2015
comment
Мой AccountController имеет [Authorize] and [InitializeSimpleMembership] attributes, а методы входа в систему имеют атрибуты [AllowAnonymous] и [HttpPost], но метод Index ничего не имеет. Мой web.config тоже не имеет отношения к loginUrl. Строка <forms loginUrl.. закомментирована   -  person gene    schedule 12.05.2015