MVC6查看由于路由引起的引用问题

时间:2016-08-26 11:10:06

标签: asp.net-mvc-routing asp.net-core-mvc

在我的解决方案中,我在根级别有一个控制器,视图文件夹,每个文件夹都有一个主文件夹,带有带有索引方法的家庭控制器和带有索引视图的视图文件夹(默认MVC设置)。在根级别我引入了一个区域文件夹,然后在这里我创建了该区域的另一个文件夹,然后是控制器和视图的文件夹。带索引方法的家庭控制器和带索引视图的视图文件夹。  这一切都很好,但我收到以下错误:

  

AmbiguousActionException:匹配多个动作。以下操作匹配路由数据并满足所有约束:

     

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

1 个答案:

答案 0 :(得分:0)

可能是因为您没有使用Area属性修饰区域控制器类。这样的事情。

[Area("Recruiter")]
public class MyController : Controller
{
    ...
}

您所在地区的Views文件夹中还需要_ViewImports.cshtml和_ViewStart.cshtml。