Ошибка маршрутизации атрибута MVC 5 для нескольких страниц - PullRequest
0 голосов
/ 07 февраля 2019

Я запустил эту ошибку, пытаясь обработать несколько маршрутов:


Ошибка сервера в «/» приложении.

Не удалось найти страницу макета «Вход» вследующий путь: «~ / Views / Login / Login».Описание: во время выполнения текущего веб-запроса произошло необработанное исключение.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.Web.HttpException: Не удалось найти страницу макета «Вход» по следующему пути: «~ / Views / Login / Login».


Вот мой код конфигурации маршрута:

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

вот мой код _viewstart

@{
    string CurrentName = Convert.ToString(HttpContext.Current.Request.RequestContext.RouteData.Values["Controller"]);
    dynamic Layout;
    switch (CurrentName)
    {
        case "Login":
            Layout = "~/Views/Shared/_LoginPageLayout.cshtml";

            break;
        case "Dashboard":
            Layout = "~/Views/Shared/_Layout.cshtml";
            break;
        default:
            //Admin layout  
            Layout = "~/Views/Shared/_Layout.cshtml";
            break;
    }
}

Могу ли я получить некоторые рекомендации относительно того, где я мог сделать неправильный поворот?

1 Ответ

0 голосов
/ 08 февраля 2019

в начале просмотра просто используйте Layout = "~ / Views / Shared / _Layout.cshtml";

удалить эту часть => rout.MapRoute (name: "Login", url: "{controller} /{action} / {id} ", по умолчанию: new {controller =" Login ", action =" Login ", id = UrlParameter.Optional});

просто попробуйте попасть на главную страницу сайта (этоавтоматически с маршрутом, когда ваш пользователь пытается достичь URL-адреса вашего базового сайта)

, а затем отфильтровать пользователя с ролью на контроллере, если он не авторизован, перенаправить его на вход.

не пытайтесь взломать структурув начале постройки вашего сайта :) 1009 *

...