1

Im новое, используя частичный вид в MVC и по какой-то причине не может получить эту работуЧастичные Представления в других контроллерах Просмотр MVC5

Notes.cshtml

@model IEnumerable<SI2.Models.DashboardNote> 

@foreach (var item in Model) 
{ 
    <div class="col-lg-12"> 
     <div class="well"> 
      <p>@Html.DisplayFor(modelItem => item.Information)</p><br /> 
      <p>@Html.DisplayFor(modelItem => item.DateCreate)</p> 
     </div> 
    </div> 
} 

Это где я пытаюсь вызвать частичный вид в другой контроллерах зрения

Главная/Index.cshtml

<div class="row"> 
    <div class="col-lg-12"> 
     <div class="panel panel-default"> 
      <div class="panel-heading"><i class="fa fc-agenda-view"></i> Notes</div> 
      <div class="panel-body"> 
       @Html.Partial("~/Views/DashboardNotes/Notes.cshtml") 
      </div> 
     </div> 
    </div> 
</div> 

Примечания Контроллер

public ActionResult Notes() 
{ 
    return View(db.DashboardNotes.ToList()); 
} 

Каждый раз, когда я пытаюсь вызова Notes.cshtml как частичный вид я получаю System.NullReferenceException с «объекта не задана ссылка на экземпляр объекта», но если я бегу вид обычно отлично работает. Между двумя моделями контроллеров нет никакой связи.

Спасибо за любую помощь :)

+0

Вы не проходящее модель для Html.Partial, поэтому ' Model' является null в Notes.cshtml – AaronLS

+0

Его по-прежнему дает нуль. Не могли бы вы привести пример, пожалуйста? – user2806570

ответ

3

Код ниже будет отрендерить частичное, без примечаний, следовательно, нулевой ссылки, потому что у вас есть Еогеасп для нулевых заметок.

@Html.Partial("~/Views/DashboardNotes/Notes.cshtml") 

Там нет никакого механизма, который запускает Html.Partial вызов к серверу. Вам нужно будет сделать какой-то тип ajax-звонка в частичном, чтобы получать заметки, если вы загрузите его таким образом, каким вы сейчас являетесь. Самый простой способ идти об этом, чтобы вернуть Notes в вашей родительской точки зрения или страницы и передать в модели на ваш частичный, смотрите ниже:

@model MainViewWithNotes 

<div class="row"> 
    <div class="col-lg-12"> 
     <div class="panel panel-default"> 
      <div class="panel-heading"><i class="fa fc-agenda-view"></i> Notes</div> 
      <div class="panel-body"> 
       @Html.Partial("~/Views/DashboardNotes/Notes.cshtml",MainViewWithNotes.Notes) 
      </div> 
     </div> 
    </div> 
</div>