如何在使用XSP和Monodevelop进行调试时找出为什么无法找到Views / Home / Index.cshtml?

时间:2013-10-19 00:01:52

标签: c# asp.net-mvc razor monodevelop

我一直在寻找一段时间,我希望我只是错过了一些小而明显的东西。是否有其他原因导致我可能错过了此文件未被检测到?对此错误的大多数建议都表明文件未正确命名,其路径未正确注册,或者所述文件的位置不正确。

我不认为它的名称,路径或注册表。当我运行它时,我可以在返回视图之前调试并在我的homecontroller中点击断点。

以下是我得到的错误。我已经加粗了文件实际存在的路径。

  

未找到视图“索引”或其主控,或者没有视图引擎支持搜索的位置。搜索了以下位置:

     

〜/查看/主页/ Index.cshtml
     〜/主页/ Index.vbhtml
     〜/查看/共享/ Index.cshtml
     〜/查看/共享/ Index.vbhtml

     

下面是我正在获得的堆栈跟踪

     

在System.Web.Mvc.ViewResult.FindView(System.Web.Mvc.ControllerContext context)[0x00000] in:0 at System.Web.Mvc.ViewResultBase.ExecuteResult(System.Web.Mvc.ControllerContext context)[ 0x00000] in:0   在System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(System.Web.Mvc.ControllerContext controllerContext,System.Web.Mvc.ActionResult actionResult)[0x00000] in:0   在System.Web.Mvc.ControllerActionInvoker +<> c__DisplayClass1a.b__17()[0x00000] in:0   在System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter过滤器,System.Web.Mvc.ResultExecutingContext preContext,System.Func`1 continuation)[0x00000] in:0   这就是我的设置。

razorpage / Global.asax.cs中

    routes.IgnoreRoute ("{resource}.axd/{*pathInfo}");

    routes.MapRoute (
        "Default",
        "{controller}/{action}/{id}",
        new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );

razorpage /控制器/ HomeController.cs

public class HomeController : Controller
{
    public ActionResult Index ()
    {
        return View ();
    }
}

razorpage /查看/主页/ Index.cshtml

@model homepagerazor.Controllers.HomeController

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

这是我的文件夹结构的一个小快照

folder snapshot

更新

在单声道中,似乎没有像在visual studio中那样更改起始页面的具体选项。如果我转向web.config限制,我可以导航到views目录中的常规html页面,所以我知道虚拟路径是正确的。

这让我想知道是否正在加载正确的视图引擎,所以我闯入了应用程序的开始并检查以确保加载了RazorViewEngine。这让我回到了我开始不知道如何在返回主视图时追踪我的问题的地方。

1 个答案:

答案 0 :(得分:1)

不幸的是,这里有更多的问题而不是一个问题。

<强>第一 我的Web配置文件有两组值,它们设置了不正确的值。

  • System.Web.MVc,3.0.0.0需要是System.Web.Mvc,4.0.0.0
  • System.Web.WebPages.Razor,1.0.0.0需要是System.Web.WebPages.Razor,2.0.0.0
  • 我需要下载ASP.NET MVC 4这个包。这里有我关心的dll的所有匹配版本。
  • 最后我在索引视图中遇到了一个剃刀语法错误,这也恰好给了我完全相同的可爱错误。

作为关于前两个的说明,我最初改变了它但没有意识到每个字符串的实例数量与我发现在两个集合上进行查找和替换都很有用。