首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.net核心6.0与脚手架标识

.net核心6.0与脚手架标识
EN

Stack Overflow用户
提问于 2022-04-25 08:56:17
回答 1查看 913关注 0票数 1

在使用.net核心6中的区域和脚手架标识时,我遇到了一个问题。我尝试过很多方法来解决这个问题,下面是一些尝试。我会在最后贴上密码。

  1. 创建了一个新的MVC项目,并从一开始就包含了身份。在不使用区域的情况下,网站可以正常工作。一旦我将脚手架区域实现到站点中,并在运行站点时移动所有相关文件,它将返回一个空白页。我可以手动导航到标识页面,它们仍然工作。
  2. 创建了一个新的MVC项目,没有标识,脚手架区域和网站工作正常。然后,脚手架将身份输入到项目中,主页停止运行。仍然可以导航到正确工作的标识页。

program.cs

代码语言:javascript
复制
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using ObferoTest.Data;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlServer(connectionString));
builder.Services.AddDatabaseDeveloperPageExceptionFilter();

builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
    .AddEntityFrameworkStores<ApplicationDbContext>();
builder.Services.AddControllersWithViews();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseMigrationsEndPoint();
}
else
{
    app.UseExceptionHandler("/Home/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthentication();
app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
      name: "areas",
      pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
    );
});
app.MapRazorPages();

app.Run();

HomeController.cs

代码语言:javascript
复制
using Microsoft.AspNetCore.Mvc;

namespace ObferoTest.Areas.Landing.Controllers
{
    public class HomeController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }
    }
}

如果我还需要发什么东西,请告诉我,我会这样做的。

EN

回答 1

Stack Overflow用户

发布于 2022-04-26 08:40:21

经过几个小时的努力,我发现了这个问题。对于.net核心6,您不需要显式地声明area属性。这可以显示当你脚手架的领域,我做了,它的工作。一旦您获得身份,就必须在控制器的开头添加Area属性。

代码语言:javascript
复制
[Area("Landing")]
public class HomeController : Controller
{

一旦我添加了属性,站点功能就正确了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71996853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档