2016-09-25 2 views
0

настроить свой маршрут, чтобы загрузить /AreaName/Home/Index по умолчанию и при добавлении этогоПеремещение из области на страницу, без области в ASP.NET

<a asp-area="" asp-controller="Application" asp-action="Index"</a>,

Index.cshtml до Я ожидал бы, чтобы перейти к /Application/Index, но при наведении курсора на ссылку url выглядит так: localhost:######/AreaName/Application/ вместо localhost:######/Application/.

Я думаю, что моя маршрутизация немного выключена. Вот что я пробовал:

app.UseMvc(routes => 
{ 
    routes.MapRoute(
     name: "Default", 
     template: "{area}/{controller}/{action}/{id?}", 
     defaults: new { area = "AreaName", controller = "Home", action = "Index" } 
    ); 

    routes.MapRoute(
     name: "SomeName", 
     template: "{area}/{controller}/{action}/{id?}", 
     defaults: new { area = string.Empty, controller = "Application", action = "Index" }  
    ); 
} 

Что я делаю неправильно?

ответ

0

Ваша таблица маршрутизации должна иметь маршрут по умолчанию без области, ваша текущая конфигурация всегда приведет к маршруту с именем области = имя области, потому что вы по умолчанию использовали его для «AreaName» на своем первом маршруте.

Скопируйте первый маршрут и удалите из него участок области и снимите второй.

+0

Причина, по которой я устанавливаю область по умолчанию, заключается в том, что я хочу, чтобы эта область была загружена при запуске приложения. Но при этом теперь я не могу перейти из области –

+0

Почему вы устанавливаете страницу по умолчанию внутри области? Если это необходимо, просто добавьте перенаправление внутри основного контроллера по умолчанию на корневом компьютере другому контроллеру внутри области –

Смежные вопросы