2013-08-04 77 views
1

我的视图找不到布局。但一切都很好。我下面的结构如下所示:视图找不到布局页面

enter image description here

而我的看法如下:

@model xxx.Web.Model.Home.IndexModel 
@{ 
    ViewBag.Title = "Index"; 
    Layout = "~/Views/_MainLayout.cshtml"; 
} 

我的布局如下所示:

<!DOCTYPE html> 
<html lang="tr"> 
<head> 
<meta charset="utf-8"> 
<title>Bootstrappage:Free Bootstrap Template (bootstrap 2.3.1 version)</title> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<meta name="description" content=""> 
<meta name="author" content=""> 
<!-- 
<link rel="stylesheet" href="themes/style/bootstrap.min.css" /> 
<link rel="stylesheet" href="themes/style/bootstrap-responsive.min.css" /> 
--> 
<link rel="stylesheet/less" type="text/css" href="../../themes/less/bootstrap.less"> 
<script src="../../themes/js/less/less.js" type="text/javascript"></script> 
<link rel="shortcut icon" href="assets/ico/favicon.ico"> 
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="assets/ico/apple-touch-icon-144-precomposed.png"> 
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="assets/ico/apple-touch-icon-114-precomposed.png"> 
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="assets/ico/apple-touch-icon-72-precomposed.png"> 
<link rel="apple-touch-icon-precomposed" href="assets/ico/apple-touch-icon-57-precomposed.png"> 
<script type="text/javascript"> 
    $(function() { 
     @RenderSection("DocumentReady", false) 
    }); 
</script> 
</head> 
<body data-offset="40"> 
@{Html.RenderAction("Header", "Partial");} 
@{Html.RenderAction("Navbar", "Partial");} 
@RenderBody() 
@{Html.RenderAction("Footer", "Partial");} 
<script src="themes/js/lib/jquery-1.9.1.min.js"></script> 
<script src="bootstrap/js/bootstrap.min.js"></script> 

</body> 
</html> 

而且我的控制器如下图所示:

public ActionResult Index() 
    { 
     IndexModel model = new IndexModel(); 
     HomeModelFactory modelFactory = new HomeModelFactory(); 
     model.Files = modelFactory.CreateIndexModel(); 

     return View(model); 
    } 

和例外: enter image description here

为什么我得到这个异常?它运作良好。

+0

最近有些事情明显改变,突然停止工作。你能比较一个正在工作的版本吗? –

+0

只有我在cshtml的顶部添加了“@model xxx.Web.Model.Home.IndexModel”。 – fuat

+1

您可以向我们展示_MainLayout.cshtml的内容吗?我怀疑有一个你正在尝试使用的变量是空的 – jzm

回答

2

还有视图/控制器的全部内容吗?

一些可能的场景没有看视图/控制器; - 有些部分缺失(如“DocumentReady”) - 视图试图解析未设置模特属性(即空)

+0

控制器代码添加到问题。 – fuat

+1

伙计们,我发现了这个问题。我的模型始终为空,所以我得到例外。这不是关于布局页面。 – fuat

+1

太好了。如果模型为null是业务逻辑的一部分,那么您可能希望在视图中添加一个空检查并向用户显示错误(通用或特定错误),而不是冒着客户端的空引用异常风险。 – Uchitha

-4

这是你的问题:Layout = "~/Views/_MainLayout.cshtml";

的_layout参考应该是Layout = "~/Views/Shared/_MainLayout.cshtml";

不要再犯这些类型的错误!

+0

这是不正确的。布局视图可以在任何地方。还尝试过Layout =“〜/ Views/Shared/_MainLayout.cshtml”;.还是一样。 – fuat

+0

'_MainLayout.cshtml'文件不在'/ shared'目录中。仔细看一下目录屏幕截图 – NotMe

+0

这是误导。我有同样的问题,像这样的回答没有帮助。 – FrenkyB