此问题多次出现在Stack Overflow上,但没有一个可接受的答案正常工作。我正在尝试在项目中实现区域。即使路由设置正确(我的控制器正在触发,我可以在VS调试器中逐步执行它们),当控制器尝试返回视图时,代码失败并显示下面的屏幕快照的臭名昭着的错误。
是的,我的观点位于正确的位置,并且命名为与我的控制器匹配(请参阅快照和代码示例),我的路由似乎设置正确(请参阅代码示例)。我可以让视图显示无错误的唯一方法是硬编码视图的完整路径,包括区域名称。即使在新的,直接的#34;开箱即用的情况下也会发生此错误。使用单个区域创建的MVC示例应用程序。在没有指定视图的完整路径的情况下,这些区域似乎无法正常工作。
任何帮助表示感谢。
我的项目如下所示:
我的控制器代码。 Index方法中设置的断点按预期触发,因此正在调用控制器。注释掉的行是返回视图的唯一方式。如此处所示,调用失败,并显示此问题末尾的错误:
public ActionResult Index()
{
return View();
// return View("~/Areas/Governance/Views/ChangeDashboard/Index.cshtml");
}
路线设置:当我设置名为"治理"的区域时在VS中,我在一个新的" GovernanceAreaRegistration.cs"文件:
public override string AreaName
{
get
{
return "Governance";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Governance_default",
"Governance/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
错误:即使我已经遵循(我认为)所有规则,但在运行时出现以下错误。看起来我的新区域的视图子文件夹没有被搜索过:
答案 0 :(得分:1)
您的网址需要包含您所在区域的名称。它应该看起来像static int getlast(const char *pkthdr)
{
// ...
return result;
}