希望我确实缺少一些明显的东西,但是到目前为止,我到这一天都没碰运气-我搜索了10多个Area教程,看看我是否能发现任何东西,但无济于事
这是我的文件夹布局:
和端点路由:
(也尝试过):
和控制器:
并查看:
尽管如此,无论我尝试过什么,我总是在HTML一代中得到这一点...
请注意表单中的?area = Admin。
我当然做对了吗?!我已经在.NET MVC + .NET Core 2.x
中完成了一百万次我没有设法重现该错误。但是,我设法创建了有效的示例。创建MWE
的步骤tl; dr (如果不起作用,请全部阅读:D):
看第四个点。您所在区域的根文件夹的指定名称似乎不正确。参见the docs
1)dotnet new mvc
2)安装最新的Aspnetboilerplate
dotnet add package Abp.AspNetCore --version 5.0.0
3)使用Areas\Admin\
和Views
创建Controllers
目录(如屏幕截图所示)
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
,格式为(degeneration :))
<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>