如何在mvc应用程序中将登录页面设置为起始页面?

时间:2017-05-30 05:40:53

标签: c# html model-view-controller

我正在使用mvc应用程序。我想为我的mvc应用程序添加登录页面。我为登录表单创建了一个login.cshtml文件(包含用户名和密码)。当我运行项目时,请参阅项目从主页开始。我想从登录页面开始。我怎样才能实现它?

5 个答案:

答案 0 :(得分:5)

转到解决方案中的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 }
        );
    }

希望对你有所帮助!

答案 1 :(得分:1)

执行以下操作:

  1. 在解决方案资源管理器中右键单击您的项目。选择 属性。
  2. 选择左侧的“Web”选项卡。
  3. 开始操作部分下,定义您想要的特定页面 喜欢默认启动应用程序。
  4. 保存更改。

答案 2 :(得分:1)

正在回答,因为我有同样的问题。我的代码在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 :(得分:0)

编辑:

我刚看到这是针对MVC3的。也许它可以帮助别人。

原件:

在global.asax文件中,RegisterRoutes函数中指定了一个默认路由:

        routes.MapRoute(
            "Default",
            "{controller}/{action}/{id}",
            new { controller = "Site", action = "Index", id = UrlParameter.Optional }
        );

只需更改参数即可。

为了防止人们在未登录的情况下进入网站,您必须跟踪用户的登录状态,例如:在用户会话中,并在每次调用操作时检查它。

答案 4 :(得分:-1)

转到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");     
}