2014-10-11 3 views
0

Частичный вид не отображается при передаче ViewModel .. Его рендеринг без ViewModel. Я имею в виду, если я держу @ Html.Partial ("PartialClientIndex"), то его рендеринг, и когда я передаю ViewModel, он прямо идет к Dispose без частичного представления части. Мне что-то не хватает ... не могли бы вы помочь в этом.MVC Частичный вид не рендеринг

Главная Вид:

<div id="PartialClient">  
     @Html.Partial("PartialClientIndex", viewModelList)      
    </div> 

Действие:

[HttpPost] 
    public ActionResult PartialClientIndex(int? SelectedGroupId) 
    { 
     int SkipRec = 0; 
     int NextRec = 25;    
     VMClient vmclient = new VMClient(); 
     vmclient.IEClients = db.client.Where(cl => cl.Groups.id == SelectedGroupId).OrderBy(c => c.id).Skip(SkipRec).Take(NextRec).ToList(); 
     return PartialView("PartialClientIndex", vmclient); 
    } 

Частичный вид:

@model IEnumerable<HostingManager.Models.VMClient> 
    <table> 
    <thead> 
    <tr> 
    <th style="width:25px; padding:10px;"> 
     Group 
    </th> 
    <th class="tbContent-Name"> 
     Client Name 
    </th> 
    <th class="tbContent-Name"> 
     Contact Person 
    </th> 
    <th class="tbContent-Name"> 
     Contact Email 
    </th >   
    <th></th> 
</tr> 
</thead> 
<tbody> 
    @if(Model != null)   
    { 
     var x = Model.Select(c=>c.IEClients).ToList(); 
     var y = x[0].ToList(); 

    // var y = x[0]["item1"]; 
     foreach (var item in y) { 
      <tr> 
       <td class="tbContent-Name"> 
        @Html.DisplayFor(modelItem => item.Groups.name) 
       </td>  
       <td class="tbContent-Name"> 
        @Html.DisplayFor(modelItem => item.contactPerson) 
       </td> 
       <td class="tbContent-Name"> 
        @Html.DisplayFor(modelItem => item.contactPerson) 
       </td> 
       <td class="tbContent-Name"> 
        @Html.DisplayFor(modelItem => item.contactEmail) 
       </td>   
       <td> 
        @Html.ActionLink("Edit", "Edit", new { id=item.id }) |   
        @Html.ActionLink("Delete", "Delete", new { id = item.id }, new { onclick = "return confirm('Are you sure you wish to delete this ?');" }) 
       </td> 
      </tr> 
      } 
      } 
    </tbody> 

+0

показать частичный код вида –

+0

У меня есть добавлен код частичного просмотра @ Ehsan Sajjad .. не могли бы вы посоветовать – Mukarram

+0

на первый взгляд, вы пытаетесь передать модель в «ActionResult», который просит «int?» – ethorn10

ответ

0

кажется, что переменная vmclient, что вы проход как модель в ваш частичный вид имеет тип VMClient. Хотя ваш частичный вид ожидает тип IEnumerable<VMClient>.

Вы в основном должны изменить тип модели в вашем частичный вид на следующий

@model HostingManager.Models.VMClient 

и настроить способ вы присваивающей y переменной

var y = Model.IEClients; 
+0

Я обновил строку определения типа модели - кажется, что я случайно написал IEnumerable с первой попытки) – danyloid

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