繁体   English   中英

将区域文件夹中的页面设置为asp.net core 2.2 MVC中的默认页面

[英]Set Page from Area Folder as default page in asp.net core 2.2 MVC

我想将登录页面设置为默认页面。登录页面存在于区域文件夹中

下面是项目结构

在此处输入图片说明

我曾尝试在 Startup.cs 页面中设置默认路由,但无法设置下面是 starup.cs 的快照

 app.UseMvc(routes =>
    {
        routes.MapRoute(
              name: "default",
              template: "identity/{controller=Account}/{action=Signin}");

        routes.MapRoute(
              name: "areaRoute",
              template: "{area:exists}/{controller}/{action}"
            );
    });

每次我收到错误 404 错误时都无法找到确切的问题所在

控制器代码:

    [Area("Identity")]
    [Route("identity/[controller]")]
    public class AccountController : BaseController
    {
        private readonly UserManager<ApplicationUser> _userManager;
        private readonly SignInManager<ApplicationUser> _signInManager;


        public AccountController(
         UserManager<ApplicationUser> userManager,
         SignInManager<ApplicationUser> signInManager
         )
        {
            _userManager = userManager;
            _signInManager = signInManager;
        }


        // GET: /Account/SignIn 
        [Route("[action]")]
        [HttpGet]
        [AllowAnonymous]
        public async Task<IActionResult> SignIn(string returnUrl = null)
        {                
            return View();
        }
    }

我想将登录页面设置为默认页面。登录页面存在于区域文件夹中

最简单的方法是为areacontrolleraction配置默认值:

app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "identity/{controller=Account}/{action=Signin}");

        
 

 
 
  
  
 
  routes.MapRoute(
              name: "areaRoute",
              template: "{area:exists}/{controller}/{action}"
            );
 

 
 
        routes.MapRoute(
            name: "areaRoute",
            template: "{area=Identity}/{controller=Account}/{action=Signin}"
        );
    });

控制器代码:需要删除路由参数

    [Area("Identity")]        
    public class AccountController : BaseController
    {
        private readonly UserManager<ApplicationUser> _userManager;
        private readonly SignInManager<ApplicationUser> _signInManager;


        public AccountController(
         UserManager<ApplicationUser> userManager,
         SignInManager<ApplicationUser> signInManager
         )
        {
            _userManager = userManager;
            _signInManager = signInManager;
        }


        // GET: /Account/SignIn            
        [HttpGet]
        [AllowAnonymous]
        public async Task<IActionResult> SignIn(string returnUrl = null)
        {                
            return View();
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM