如何在 mvc 应用程序中将登录页面设置为起始页面?
Posted
技术标签:
【中文标题】如何在 mvc 应用程序中将登录页面设置为起始页面?【英文标题】:How to set login page as start page in mvc application? 【发布时间】:2017-10-30 10:59:45 【问题描述】:我正在使用 mvc 应用程序。我想为我的 mvc 应用程序添加一个登录页面。我为登录表单创建了一个 login.cshtml 文件(它包含用户名和密码)。当我运行项目时,它从主页开始。我想从登录页面开始。我怎样才能做到这一点?
【问题讨论】:
您使用的是 .net core 还是 mvc5? 我正在使用 mvc5 @NivithaG 最好的解决方案是 Zaheer Ul Hassan 之一。我也会这样做。 【参考方案1】:转到解决方案中的App_Start
文件夹并打开RouteConfig.cs
并将此方法替换为您的代码:
public static void RegisterRoutes(RouteCollection routes)
routes.IgnoreRoute("resource.axd/*pathInfo");
routes.MapRoute(
name: "Default",
url: "controller/action/id",
defaults: new controller = "Account", action = "Login", id = UrlParameter.Optional
);
希望对你有帮助!
【讨论】:
@NivithaG 试试这个解决方案 谢谢。对我有用。【参考方案2】:回答是因为我有同样的问题。我的代码在 startup.cs 中看起来像这样
app.UseEndpoints(endpoints =>
endpoints.MapControllerRoute(
name: "default",
pattern: "controller=Home/action=Index/id?");
);
我将控制器的名称和索引更改为我希望它调用的控制器和索引。
app.UseEndpoints(endpoints =>
endpoints.MapControllerRoute(
name: "default",
pattern: "controller=Login/action=Register/id?");
);
【讨论】:
【参考方案3】:执行以下操作:
-
在解决方案资源管理器中右键单击您的项目。选择
属性。
选择左侧的 Web 选项卡。
在开始操作部分下,定义您想要的特定页面
喜欢默认为应用程序启动的时间。
保存您的更改。
【讨论】:
【参考方案4】:编辑:
我刚刚看到这是针对 MVC3 的。也许它可以帮助别人。
原文:
在您的 global.asax 文件中,RegisterRoutes 函数中指定了默认路由:
routes.MapRoute(
"Default",
"controller/action/id",
new controller = "Site", action = "Index", id = UrlParameter.Optional
);
只需更改参数即可。
为了防止人们在未登录的情况下进入网站,您必须跟踪用户的登录状态,例如在用户会话中,并在调用操作时检查它。
【讨论】:
【参考方案5】:转到HomeController.cs
并替换
public ActionResult Index()
return View();
与
public ActionResult Index()
return View("Login");
为此,您的login.cshtml
应位于Views/Home
文件夹中。
如果它在另一个文件夹中,那么试试这个:
public ActionResult Index()
return View("~/Views/YourFolderName/Login.cshtml");
【讨论】:
以上是关于如何在 mvc 应用程序中将登录页面设置为起始页面?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring MVC (JPA) 中将实体对象列表转换为页面对象?