.NET Core 3 - 我的 Area 标签没有被识别
.NET Core 3 - my Area tag is not being recognised
希望我遗漏了一些非常明显的东西,但到目前为止,我一直在这一天,但绝对没有运气 - 我已经搜索了 10 多个区域教程,看看我是否能发现任何东西,但是没用。
这是我的文件夹布局:
和端点路由:
(也尝试过):
和控制器:
和视图:
然而,无论我尝试过什么,我总是在 HTML 代中得到这个...
注意表单中的 ?area=Admin。
确定我做的一切都对吗?!我已经在 .NET MVC + .NET Core 中完成了一百万次 2.x
我没能重现错误。但是,我设法创建了有效的示例。创建 MWE
的步骤
tl;dr(如果行不通,请阅读全部:D):
看第4点。似乎您所在区域的根文件夹的指定名称不正确。参见 the docs
1) dotnet new mvc
2) 安装最新的 Aspnetboilerplate
dotnet add package Abp.AspNetCore --version 5.0.0
3) 使用 Views
和 Controllers
创建 Areas\Admin\
目录(如您的屏幕截图所示)
4) 在Startup.cs
:
中设置路由(这可能是关键部分)
app.UseEndpoints(endpoints =>
{
endpoints.MapAreaControllerRoute(
name: "areas",
areaName: "Admin",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
5) Areas\Admin\Controllers\BankHolidaysController.cs
using System;
using Abp.AspNetCore.Mvc.Controllers;
using Microsoft.AspNetCore.Mvc;
namespace dotnet_mvc_areas_stack.Areas.Admin.Controllers
{
[Area("Admin")]
public class BankHolidaysController : AbpController
{
public IActionResult Index()
{
return View();
}
public IActionResult Create()
{
Console.WriteLine("Creating");
return View();
}
}
}
6) Areas\Views\BankHolidays\Create.cshtml
与 (degenerated :) ) 形式
<p> This is index page of area </p>
<div>
<form method="post" action="/Admin/BankHolidays/Create">
<button type="submit">submit</button>
</form>
</div>
7)旁边Create.cshtml
<div>Created</div>
希望我遗漏了一些非常明显的东西,但到目前为止,我一直在这一天,但绝对没有运气 - 我已经搜索了 10 多个区域教程,看看我是否能发现任何东西,但是没用。
这是我的文件夹布局:
和端点路由:
(也尝试过):
和控制器:
和视图:
然而,无论我尝试过什么,我总是在 HTML 代中得到这个...
注意表单中的 ?area=Admin。
确定我做的一切都对吗?!我已经在 .NET MVC + .NET Core 中完成了一百万次 2.x
我没能重现错误。但是,我设法创建了有效的示例。创建 MWE
的步骤tl;dr(如果行不通,请阅读全部:D):
看第4点。似乎您所在区域的根文件夹的指定名称不正确。参见 the docs
1) dotnet new mvc
2) 安装最新的 Aspnetboilerplate
dotnet add package Abp.AspNetCore --version 5.0.0
3) 使用 Views
和 Controllers
创建 Areas\Admin\
目录(如您的屏幕截图所示)
4) 在Startup.cs
:
app.UseEndpoints(endpoints =>
{
endpoints.MapAreaControllerRoute(
name: "areas",
areaName: "Admin",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
5) Areas\Admin\Controllers\BankHolidaysController.cs
using System;
using Abp.AspNetCore.Mvc.Controllers;
using Microsoft.AspNetCore.Mvc;
namespace dotnet_mvc_areas_stack.Areas.Admin.Controllers
{
[Area("Admin")]
public class BankHolidaysController : AbpController
{
public IActionResult Index()
{
return View();
}
public IActionResult Create()
{
Console.WriteLine("Creating");
return View();
}
}
}
6) Areas\Views\BankHolidays\Create.cshtml
与 (degenerated :) ) 形式
<p> This is index page of area </p>
<div>
<form method="post" action="/Admin/BankHolidays/Create">
<button type="submit">submit</button>
</form>
</div>
7)旁边Create.cshtml
<div>Created</div>