Установить страницу из папки области как страницу по умолчанию в ядре asp.net 2.2 MVC - PullRequest
2 голосов
/ 19 июня 2019

Я хочу установить страницу входа в качестве страницы по умолчанию. Страница входа присутствует в папке области

Ниже приведена структура проекта

enter image description here

Я пытался установить маршрут по умолчанию на странице 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();
        }
    }

1 Ответ

1 голос
/ 20 июня 2019

Я хочу установить страницу входа в качестве страницы по умолчанию. Страница входа присутствует в папке области

Самый простой способ - настроить значения по умолчанию для area, controller и action:

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

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

Код контроллера: необходимо удалить параметр маршрута

    [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();
        }
    }
...