由于路由导致的 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。