在ASP.NET Identity中,控制器和视图的位置可以根据项目的需求进行配置。默认情况下,它们位于项目的Controllers和Views文件夹中。
以下是一个示例解决方法:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Identity;
public class AccountController : Controller
{
private readonly SignInManager _signInManager;
public AccountController(SignInManager signInManager)
{
_signInManager = signInManager;
}
// 添加你的身份验证和授权相关的操作方法
}
@model LoginViewModel
请注意,在上述代码中,我们使用了Razor视图引擎来生成HTML标记,并使用了ASP.NET Core的标记助手(asp-for)来生成表单字段。
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
public class Startup
{
private readonly IConfiguration _configuration;
public Startup(IConfiguration configuration)
{
_configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
// 配置数据库上下文
services.AddDbContext(options =>
options.UseSqlServer(_configuration.GetConnectionString("DefaultConnection")));
// 配置Identity
services.AddIdentity()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
// 配置身份验证
services.Configure(options =>
{
// 添加你的身份验证配置选项
});
// 配置控制器和视图的位置
services.AddControllersWithViews()
.AddRazorRuntimeCompilation()
.AddViewOptions(options =>
{
options.ViewLocationFormats.Add("/Views/Account/{0}.cshtml");
options.ViewLocationFormats.Add("/Views/Shared/{0}.cshtml");
});
}
public void Configure(IApplicationBuilder app)
{
// 配置中间件和路由
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
}
在上述代码中,我们通过调用services.AddControllersWithViews()方法来配置控制器和视图。然后,我们使用.AddViewOptions()方法来添加自定义视图位置的选项。在这个示例中,我们将Account文件夹添加到视图位置列表中。
请注意,这只是一个示例解决方法,你可以根据你的项目需求进行适当的配置和调整。