Частичният изглед на MVC не се изобразява

Частичният изглед не се изобразява при предаване на ViewModel.. Неговото изобразяване без ViewModel. Искам да кажа, че ако запазя @Html.Partial("PartialClientIndex"), тогава неговото изобразяване и когато предам ViewModel, той директно отива в Dispose, без да изобразява частичен изглед. Липсва ми нещо тук.. Бихте ли ми помогнали с това.

Основен изглед:

    <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>


person Mukarram    schedule 11.10.2014    source източник
comment
покажете кода за частичен изглед   -  person Ehsan Sajjad    schedule 11.10.2014
comment
Добавих код за частичен изглед @Ehsan Sajjad.. бихте ли дали съвет   -  person Mukarram    schedule 11.10.2014
comment
на пръв поглед вие се опитвате да предадете модел на ActionResult, който иска int?   -  person ethorn10    schedule 11.10.2014
comment
@ethorn10 @Html.Partial няма да извика метода за действие, той просто изпълнява файла cshtml с това име   -  person Rhumborl    schedule 15.10.2014
comment
@user2254395, ако отива направо към изхвърляне, подозирам, че има грешка в частичния изглед - viewModelList определено ли е IEnumerable<VMClient>? как създавате тази променлива?   -  person Rhumborl    schedule 15.10.2014
comment
Можете ли да публикувате кода на VMClient?   -  person Bonomi    schedule 15.10.2014
comment
@Rhumborl - добро обаждане за метода на действие...забравих това. Обзалагам се, че viewModelList или не е очакваният тип, или не е зададен правилно в родителския метод на действие.   -  person ethorn10    schedule 15.10.2014


Отговори (1)


Изглежда, че променливата vmclient, която предавате като модел във вашия частичен изглед, е от тип VMClient. Въпреки че вашият частичен изглед очаква тип IEnumerable<VMClient>.

По принцип трябва да промените типа модел във вашия частичен изглед на следния

@model HostingManager.Models.VMClient

и коригирайте начина, по който присвоявате променливата y

var y = Model.IEClients;
person danyloid    schedule 15.10.2014
comment
Актуализирах реда за дефиниране на тип модел - изглежда, че случайно съм написал IEnumerable‹VMClient› от първия опит) - person danyloid; 15.10.2014