ASP.NET представление URL значения по умолчанию MVC

Я пытаюсь установить URL По умолчанию своего приложения MVC к представлению в области моего применения. Область называют "Распространенной", контроллер "Домой" и представление "Index".

Я попытался установить defaultUrl в разделе форм web.config к "~/Common/Home/Index" без успеха.

Я также попытался отобразить новый маршрут в global.asax, таким образом:

routes.MapRoute(
        "Area",
        "{area}/{controller}/{action}/{id}",
        new { area = "Common", controller = "Home", action = "Index", id = "" }
    );

Снова, напрасно.

14
задан DaveRandom 25 February 2013 в 20:46
поделиться

3 ответа

Маршрут, который вы перечислили, работает только в том случае, если они явно напечатают URL:

yoursite.com/{area}/{controller}/{action}/{id}

В этом маршруте написано:

Если я получу запрос, который имеет действительный {область}, действительный {контроллер} в этой области, и действительный {действие} в этом контроллере, то перенаправьте его туда.

Вы хотите, чтобы по умолчанию этот контроллер, если они просто заходят на ваш сайт, yoursite.com:

routes.MapRoute(
    "Area",
    "",
    new { area = "Common", controller = "Home", action = "Index" }
);

Здесь сказано, что если они ничего не добавляют к http://yoursite.com, то направляют его к следующему действию: Common/Home/Index

Также поместите его в верхнюю часть таблицы маршрутов.

Убедитесь, что вы также сообщаете MVC, чтобы зарегистрировать области, которые у вас есть в приложении:

В своем методе Application_Start поместите в файл Global.asax.cs:

AreaRegistration.RegisterAllAreas();
13
ответ дан 1 December 2019 в 13:09
поделиться

То, что вы делаете, кажется правильным. Если бы мне пришлось догадываться, я бы сказал, что это происходит из-за того, как вы управляете своим сайтом. В Visual Studio, если при нажатии F5 у вас выбрано определенное представление, то это будет стартовое Url - попробуйте выбрать проект, а затем нажмите F5?

.
0
ответ дан 1 December 2019 в 13:09
поделиться

Что вам нужно сделать, это:

  • Удалить маршрут по умолчанию из global.asax.cs

     //// будет создана карта маршрутов по умолчанию в области 
     // routes.MapRoute (
     // name: "Default", 
     // url: "{controller} / {action} / {id}", { {1}} // по умолчанию: new {controller = "Home", action = "Index", id = UrlParameter.Optional} 
     //); 
     
  • Обновить SecurityAreaRegistration.cs в area Common

  • Добавьте следующее сопоставление маршрута:

      context.MapRoute (
     "Default", 
     "", 
    new {controller = "Home", action = " Индекс ", id =" "} 
    ); 
     
7
ответ дан 1 December 2019 в 13:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: