使用模型在局部视图内迭代

时间:2013-10-05 16:35:44

标签: c# asp.net-mvc razor

目前我有一个调用部分视图的视图,一切正常。

当前观点:

     @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; }

    }
   }

2 个答案:

答案 0 :(得分:3)

Now i want to pass the model itself

只需使用

@Html.Partial("_topposts", Model)

而不是

@Html.Partial("_topposts", item)  

您的部分视图代码很好。

另外使用您要传递的对象类型更改部分视图的@model定义

答案 1 :(得分: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)
{
    /// .......
}