【发布时间】:2019-03-05 14:25:29
【问题描述】:
我的新区域有这个文件夹结构
这是我在启动时的设置方式:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "areas",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
});
这就是我创建基本控制器的方式
namespace App.Areas.Applications.Controllers
{
[Area("Applications")]
[Authorize]
public abstract class ApplicationsBaseController : Controller
{
}
}
然后我的 ApplicationsController 继承了 BaseController
但是,当我设置这样的链接时
<li class="nav-item"><a asp-area="Applications" asp-controller="Applications" asp-action="Index" class="nav-link">Applications</a></li>
这是在我的网址https://localhost:44338/Applications?area=Applications 中显示的链接,我得到一个页面找不到。
设置我的区域时我错过了什么?
编辑:
当我在 [Area("Applications")] 之后添加 [Route("Applications/[controller]")] 时,出现此错误
处理请求时发生未处理的异常。 AmbiguousActionException:匹配多个操作。下列 动作匹配路由数据并满足所有约束:
App.Areas.Applications.Controllers.ApplicationsController.Index(应用程序) App.Areas.Applications.Controllers.ApplicationsController.Create(应用程序) App.Areas.Applications.Controllers.ApplicationsController.NewRole (应用)
【问题讨论】:
-
是的,这就是我关注的
-
我还为我的问题添加了更多信息
-
@PrashantPimpale 出现相同的错误
标签: c# asp.net asp.net-core .net-core