我是MVC的新手,嘗試了幾件事情,所以如果有人能告訴我我哪裏出錯了,我將不勝感激。我把它從VB轉換成它的工作,但現在,在C#中它不。也許我的轉換不好,但類似的代碼在VB中工作。部分視圖無法訪問模型
我通過模型指數(稍後將呈現幾個諧音,我將建立一個ViewModel持有各種不同類型的模型)。然後,我嘗試將模型傳遞給Partial,但Partial無法在foreach循環中訪問Model。
下面是代碼。任何幫助,將不勝感激。
控制器:
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 =(從db.PatAdms PA其中pa.AdmNum == ID選擇PA)。 ToList(); return View(patadms);'返回null。我不知道爲什麼,但你最好用調試器進行檢查。 –
Leron