对于多页MVC 5属性路由错误

问题描述 投票:0回答:1

我跑这个错误试图处理多个路线:


在“/”应用程序的服务器错误。

布局页面“登录”无法在以下路径找到:“〜/查看/登录/登录”。说明:在当前Web请求的执行过程中发生未处理的异常。请检查堆栈跟踪有关该错误它起源于代码的详细信息和。

异常详细信息:System.Web.HttpException:布局页面“登录”无法在以下路径找到:“〜/查看/登录/登录”。


这里是我的路线配置的代码:

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;
    }
}

给我一些指导,在那里我可能已经走错了方向?

asp.net-mvc asp.net-mvc-5 asp.net-mvc-routing angular7
1个回答
0
投票

鉴于开始只使用布局=“〜/查看/共享/ _Layout.cshtml”;

除去这部分=> routes.MapRoute(名称: “登录”,URL: “{控制器} / {行动} /(编号)”,缺省值:新的{控制器= “登录”,动作= “登录”,ID = UrlParameter 。可选的 } );

只是尝试打回家的索引页(当用户试图达到你的基地网站网址是自动与路线)

然后对控制器角色过滤用户如果没有鉴别的重定向他登录。

不要试图打破框架,你的网站建设初期:)

© www.soinside.com 2019 - 2024. All rights reserved.