如何解决ASP.NET Core 3.1 区域返回 404
我尝试了此链接 Stack Link FOR 404 Error 但错误不会显示区域的 404 错误
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddDbContext<BCAContext>(options =>
options.UsesqlServer(Configuration.GetConnectionString("BCAContext")));
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app,IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints => {
endpoints.MapControllers();
//endpoints.MapAreaControllerRoute(
// "Student",// "Student",// "Student/{controller=StudentExam}/{action=Index}/{id?}");
endpoints.MapControllerRoute(name: "areas",pattern: "{area:exists}/{controller=StudentExam}/{action=Index}/{id?}");
endpoints.MapControllerRoute(
name: "default",pattern: "{controller=Home}/{action=Index}/{id?}");
});
//database
using (var serviceScope = app.applicationservices.GetService<IServiceScopeFactory>().CreateScope())
{
var context = serviceScope.ServiceProvider.GetrequiredService<BCAContext>();
context.Database.EnsureDeleted();
context.Database.EnsureCreated();
//context.Database.Migrate();
}
}
}
结构图
控制器
namespace BCA_New_System.Areas.Student.Controllers
{
public class StudentExamController : Controller
{
public IActionResult Index()
{
return View();
}
}
}
索引页
@{
ViewData["Title"] = "Index";
Layout = "~/Areas/Student/Views/Shared/_Layout.cshtml";
}
<h1>Index</h1>
解决方法
您可以为不同的区域添加这样的模式。对于学生区,您添加以下代码片段:
endpoints.MapControllerRoute(
name: "areas",pattern: "{area:exists}/{controller=StudentExam}/{action=Index}/{id?}"
);
在您的控制器中,您必须像这样添加区域注释:
public class StudentExamController : Controller
{
[Area("Student")]
public IActionResult Index()
{
return View();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。