多个页面的MVC 5属性路由错误

时间:2019-02-07 19:41:13

标签: asp.net-mvc asp.net-mvc-5 asp.net-mvc-routing angular7

我尝试处理多条路线时遇到此错误:


  

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

     

在以下路径中找不到布局页面“登录”:“〜/ Views / Login / Login”。   说明:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。

     

异常详细信息: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 :(得分:0)

在视图开始时仅使用Layout =“〜/ Views / Shared / _Layout.cshtml”;

删除此部分=> route.MapRoute(名称:“登录”,网址:“ {controller} / {action} / {id}”,默认值:新建{controller =“ Login”,action =“ Login”, id = UrlParameter.Optional});

只需尝试访问首页的索引页(当用户尝试访问您的基本网址时,路由就会自动显示)

,然后过滤未经身份验证的具有控制器角色的用户,将其重定向到登录名。

请勿在早期构建网站时尝试破坏框架:)