由于路由导致的 MVC6 视图引用问题
MVC6 View Referencing issue due to routing
在我的解决方案中,我在根级别有一个控制器、视图文件夹,其中每一个都有一个主文件夹,主文件夹带有一个带索引方法的主控制器,以及一个带有索引视图的视图文件夹(默认 MVC 设置)。在根级别,我引入了一个区域文件夹,然后在这里我为该区域创建了另一个文件夹,然后是控制器和视图的文件夹。具有索引方法的主控制器和具有索引视图的视图文件夹。
一切正常,但我收到以下错误:
AmbiguousActionException: Multiple actions matched. The following actions matched route data and had all constraints satisfied:
VisualJobs.Controllers.HomeController.Index (VisualJobs)
VisualJobs.Areas.Recruiter.Controllers.HomeController.Index
(VisualJobs) VisualJobs.Areas.Jobs.Controllers.HomeController.Index
(VisualJobs)
在我的配置文件中我有:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "areaRoute",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
文件夹结构:
Areas -->Candidate-->Controllers
Shared
ViewModels
Views
Areas -->Recruiter-->Controllers
Shared
ViewModels
Views
Controllers
Views
可能是你的区域控制器类没有装饰区域属性。像这样。
[Area("Recruiter")]
public class MyController : Controller
{
...
}
您所在区域的 Views 文件夹中还需要 _ViewImports.cshtml 和 _ViewStart.cshtml。
在我的解决方案中,我在根级别有一个控制器、视图文件夹,其中每一个都有一个主文件夹,主文件夹带有一个带索引方法的主控制器,以及一个带有索引视图的视图文件夹(默认 MVC 设置)。在根级别,我引入了一个区域文件夹,然后在这里我为该区域创建了另一个文件夹,然后是控制器和视图的文件夹。具有索引方法的主控制器和具有索引视图的视图文件夹。 一切正常,但我收到以下错误:
AmbiguousActionException: Multiple actions matched. The following actions matched route data and had all constraints satisfied:
VisualJobs.Controllers.HomeController.Index (VisualJobs) VisualJobs.Areas.Recruiter.Controllers.HomeController.Index (VisualJobs) VisualJobs.Areas.Jobs.Controllers.HomeController.Index (VisualJobs)
在我的配置文件中我有:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "areaRoute",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
文件夹结构:
Areas -->Candidate-->Controllers
Shared
ViewModels
Views
Areas -->Recruiter-->Controllers
Shared
ViewModels
Views
Controllers
Views
可能是你的区域控制器类没有装饰区域属性。像这样。
[Area("Recruiter")]
public class MyController : Controller
{
...
}
您所在区域的 Views 文件夹中还需要 _ViewImports.cshtml 和 _ViewStart.cshtml。