c# - 无法在 ASP.Net MVC 5 中找到区域 View

标签 c# .net asp.net-mvc-5 asp.net-mvc-areas

新项目无法找到新区域的 View 。

它正在尝试在父 Views 文件夹中找到它。

建议的解决方案是将 .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");
        }

但是,有了这个,我得到了一个“已经添加了具有相同键的项目。”错误。

更新 1:我没有在 Controller 上做任何花哨的事情。

public ActionResult Index()
        {
            return View();
        }

更新 2:我只想补充一点,我还将组件注册到 Unity 容器中。不过,我不认为这会导致问题,因为它明确指出没有必要注册我的 Controller 。

最佳答案

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

YourNamespace.YourApplication.Controllers 

相反,它应该从命名空间(或您定义的任何命名空间)中查看

YourNamespace.YourApplication.Areas.Test.Controllers

将以下内容添加到您的路线声明中

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" }
    );
}

关于c# - 无法在 ASP.Net MVC 5 中找到区域 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23716618/

相关文章:

c# - 作为配置属性的不可变类型

c# - .NET4 中带有集合的简单自定义配置部分

c# - 在 StructureMap 中有条件地获取实例

asp.net-mvc-5 - 未找到 View 'name' 或其主视图,或者没有 View 引擎支持搜索的位置

jquery - 欧芹 js 与 MVC5

c# - Facebook SDK - 处理应用程序邀请?

c# - 您必须添加对程序集 'WindowsBase, Version=3.0.0.0 的引用

c# - 如何自动删除测试结果

c# - 查找默认电子邮件客户端

asp.net - 向通过 Google OAuth2 创建的用户添加角色或声明