我尝试处理多条路线时遇到此错误:
“ /”应用程序中的服务器错误。
在以下路径中找不到布局页面“登录”:“〜/ 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;
}
}
我可以在一些错误的地方找到一些指导吗?
答案 0 :(得分:0)
在视图开始时仅使用Layout =“〜/ Views / Shared / _Layout.cshtml”;
删除此部分=> route.MapRoute(名称:“登录”,网址:“ {controller} / {action} / {id}”,默认值:新建{controller =“ Login”,action =“ Login”, id = UrlParameter.Optional});
只需尝试访问首页的索引页(当用户尝试访问您的基本网址时,路由就会自动显示)
,然后过滤未经身份验证的具有控制器角色的用户,将其重定向到登录名。
请勿在早期构建网站时尝试破坏框架:)