[英]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();
}
}
我想将登录页面设置为默认页面。登录页面存在于区域文件夹中
最简单的方法是为area
、 controller
和action
配置默认值:
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.