2013-10-05 3 views
0

В настоящее время у меня есть представление, которое вызывает частичный вид, и все работает нормально.итерация внутри частичного просмотра с использованием модели

Текущий вид:

 @foreach (var item in Model) 
     { 
      @Html.Partial("_topposts", item)     
     } 

Теперь я хочу передать саму модель на частичный вид вместо элемента внутри модели. Что-то, как показано ниже

Я хочу что-то вроде этого:

  @Html.Partial("_topposts", item)     

, а затем внутри частичный вид я хочу это

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

 @foreach (var item in Model) 
     { 
      <P>Name: item.Name</p>     
     } 

Модель класса:

public class PostModel 
{ 
    public int Id { get; set; } 
    public string Post { get; set; } 
    public string Name { get; set; } 
    public string City { get; set; } 
    public string Country { get; set; } 
    public string Timeago { get; set; } 
    public int CommentsCount { get; set; } 

    } 
    } 
+1

Итак, что ваш вопрос ... – PSL

ответ

3

Now i want to pass the model itself

Просто использование

@Html.Partial("_topposts", Model) 

вместо

@Html.Partial("_topposts", item) 

И ваш код частичного вида хорошо.

Кроме того изменить @model определение с частичным видом на тип объекта, который вы передаете

+0

ты спаситель! Спасибо, что сработало! – Robert

+0

@Rams, Glab Я могу помочь – Satpal

0

Вы можете создать метод действия на вашем контроллере, возвращая частичное представление;

public PartialViewResult YourPartialView(int parameter) 
{ 
    // get your viewmodel using the parameter... 
    var vm = new YourPartialViewModel(parameter); 
    return PartialView(vm); 
} 

В главной странице:

@foreach (var item in Model) 
{ 
    @{ Html.RenderAction("YourPartialView", new { parameter = item.id }); } 
} 

Убедитесь, что вы создаете частичный вид, что сильно типизированных, типа "YourPartialViewModel"

@model YourPartialViewModel 

@foreach (var item in Model.Items) 
{ 
    /// ....... 
} 
Смежные вопросы