Я новичок в MVC и пробую несколько вещей, поэтому я был бы признателен, если кто-нибудь скажет мне, где я ошибаюсь. Я преобразовал это из VB, где он работал, но теперь, в C#, это не так. Возможно, мое преобразование плохое, но аналогичный код работает в VB.Partial View не может получить доступ к модели
Я передаю модель индексу (который позже будет отображать несколько партикулов, и я построю ViewModel для хранения каждого типа модели). Затем я пытаюсь передать модель частичным, но Partial не может получить доступ к модели в цикле foreach.
Ниже, если код. Любая помощь будет оценена по достоинству.
Контроллер:
public ActionResult HospiceSummary(int? id)
{
IEnumerable<PatAdm> patadms = (from pa in db.PatAdms where pa.AdmNum == id select pa).ToList();
return View(patadms);
}
Вид:
@model IEnumerable<PatAdm>
@{
ViewBag.Title = "View";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>.... Some other code up here</h2>
<h2>Hospice</h2>
<div class="container-fluid">
@Html.Partial("~/Views/Shared/_PatientAdmissionSearch.cshtml", Model)
</div>
Частичный:
@model IEnumerable<PatAdm>
<div class="row">
<div class="col-xs-12">
<div class="table-header">
Find a Patient
</div>
</div> @*col-xs-12*@
</div> @*row1*@
<div class="row">
@using (Html.BeginForm("Index", "Admission", FormMethod.Post))
{
@Html.AntiForgeryToken()
<div class="col-md-4">
<div class="input-append">
<input type="text" class="span2 search-query" id="query" name="query">
<button type="submit" class="btn"><i class="icon-search"></i></button>
</div>
</div>
<table class="table">
<tr>
<th></th>
<th>Patient Name</th>
<th>Acct #</th>
<th>Admit Date</th>
<th>Discharge Date</th>
<th>DOB</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.ActionLink("Select", "HospiceSummary", "Hospice", new {id = item.AdmNum}, new { @class = "label label-info"}) <br />
</td>
<td>@Html.DisplayFor(modelItem => item.Patient.LName), @Html.DisplayFor(modelItem => item.Patient.FName)</td>
<td>@Html.DisplayFor(modelItem => item.AdmNum)</td>
<td>@Html.DisplayFor(modelItem => item.AdmDate)</td>
<td>@Html.DisplayFor(modelItem => item.DischDate)</td>
<td>@Html.DisplayFor(modelItem => item.Patient.DOB)</td>
</tr>
}
</table>
}
</div> @*row2*@
Какая ошибка точно это бросает? – mxmissile
Первое, что я замечаю, это отсутствие «Модели» в intellisense в частичном представлении. Затем, когда я запускаю его, я получаю: Ссылка на объект не установлена в экземпляр объекта –
@ L_7337 Скорее всего это - 'IEnumerable patadms = (from pa in db.PatAdms, где pa.AdmNum == id select pa). К списку(); return View (patadms); 'возвращает null. Я не знаю, почему, но лучше проверить с помощью отладчика. –
Leron