【发布时间】:2017-10-15 21:36:07
【问题描述】:
默认情况下,Visual Studio 2017 中的 MVC 4 将 _Layout.cshtml 设置为所有页面的默认布局。我相信它在App_Start/RouteConfig.cs 中这样做:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
(索引设置为首页)
我仍然不确定 Index 如何获得 _Layout.cshtml。但是,如果我试图设置一个不同的视图——登录页面——作为主页,像这样呢?
我还试图去掉标题中的报告、帐户、设置和注销<li>'s,以便页面与上面的设计相匹配。我还需要一个里面有表格的容器。
我尝试在 /Home 和 /Shared 中创建 _Login 视图,并将 App_Start/RouteConfig.cs 中的 "Index" 更改为 "Login":
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Login", id = UrlParameter.Optional }
但这给了我一个错误:
如何创建视图并将该视图设置为此 MVC 4 Web 应用程序的默认视图?谢谢
【问题讨论】:
-
默认布局设置在Views/_ViewStart.cshtml
Layout = "~/Views/Shared/_Layout.cshtml". -
哦,好吧。我确实在
_ViewStart.cshtml中设置了_Login.cshtml。我有_Login.cshtml而不是_Layout.cshtml,但我仍然收到上述错误消息。我的_ViewStart.cshtml看起来像这样:@{ Layout = "~/Views/Shared/_Login.cshtml"; } -
是不是需要为不同的视图设置不同的布局?
-
您得到的错误似乎是因为在家庭控制器中找不到登录操作。
-
你通常可以用一个布局做很多事情。但您始终可以在各个视图页面中覆盖默认的
Layout = "~/Views/Shared/_LayoutLogin.cshtml"。
标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor