无法在ASP.Net MVC 5中找到区域视图

Jon*_*gel 2 .net c# asp.net-mvc-areas asp.net-mvc-5

新项目无法找到新区域的视图.

它试图在父视图文件夹中找到它.

建议的解决方案是.DataTokens.Add("area", "AREANAME")将该RegisterArea方法付诸实践.

public override void RegisterArea(AreaRegistrationContext context) 
        {
            context.MapRoute(
                "Test_default",
                "Test/{controller}/{action}/{id}",
                new { action = "Index", id = UrlParameter.Optional }
            ).DataTokens.Add("area", "Test");
        }
Run Code Online (Sandbox Code Playgroud)

但是,有了这个,我得到一个" 已添加相同密钥的项目. "错误.

更新1:我没有对控制器做任何想象.

public ActionResult Index()
        {
            return View();
        }
Run Code Online (Sandbox Code Playgroud)

更新2:我只想补充一点,我也在将组件注册到Unity容器中.但是,我不认为这会导致问题,因为它明确指出没有必要注册我的控制器.

Jan*_*nen 5

这很可能是因为正在从命名空间中搜索View

YourNamespace.YourApplication.Controllers 
Run Code Online (Sandbox Code Playgroud)

而应该从命名空间(或你定义的名称空间)查看它

YourNamespace.YourApplication.Areas.Test.Controllers
Run Code Online (Sandbox Code Playgroud)

在路线声明中添加以下内容

public override void RegisterArea(AreaRegistrationContext context) 
{
    context.MapRoute(
        "Test_default",
        "Test/{controller}/{action}/{id}",
        new { action = "Index", id = UrlParameter.Optional },
        namespaces: new[] { "YourNamespace.YourApplication.Areas.Test.Controllers" }
    );
}
Run Code Online (Sandbox Code Playgroud)