2013-08-04 4 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

Только я добавил «@model xxx.Web.Model.Home.IndexModel» в верхней части cshtml. – fuat

+1

Не могли бы вы показать нам содержимое _MainLayout.cshtml? Я подозреваю, что есть переменная, которую вы пытаетесь использовать, которая равна нулю. – jzm

ответ

2

И, пожалуйста, полное содержимое View/Controller?

Возможные сценарии, не рассматривающие View/Controller; - Некоторые разделы отсутствуют (например, «DocumentReady») - мнение пытается разрешить свойства модели, которые не установлены (т.е. NULL)

+0

Код контроллера добавлен в вопрос. – fuat

+1

Ребята, я нашел проблему. Моя модель всегда равна нулю, поэтому я получаю исключение. Речь идет не о странице макета. – fuat

+1

Отлично. Если нулевая модель является частью бизнес-логики, вы можете захотеть добавить нулевую проверку в представлении и показать пользователю ошибку (как общую, так и конкретную), а не рисковать исключение ссылочной ссылки на стороне клиента. – 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

Смежные вопросы