新项目无法找到新区域的 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/