2014-03-05 126 views
0

我是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*@ 
+1

究竟是什麼錯誤拋出? – mxmissile

+0

我注意到的第一件事是在部分視圖中,在intellisense中沒有'模型'。然後,當我運行它,我得到:對象引用未設置到對象 –

+0

的@ L_7337大多數實例或許這一點 - 'IEnumerable的 patadms =(從db.PatAdms PA其中pa.AdmNum == ID選擇PA)。 ToList(); return View(patadms);'返回null。我不知道爲什麼,但你最好用調試器進行檢查。 – Leron

回答

2

父視圖的模型是默認傳遞到局部視圖,這樣你就不會需要明確傳遞。還要確保父視圖上的模型具有價值。

+0

謝謝@AshishCharan。我從另一個評論中找到答案,但你的回答是提供信息,所以+1。 –

+0

答案是什麼? – mxmissile

+0

模型返回null,我在控制器中修復了這個問題。 –