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

    }
   }
4

2 回答 2

3

Now i want to pass the model itself

只需使用

@Html.Partial("_topposts", Model)

代替

@Html.Partial("_topposts", item)  

你的部分视图代码很好。

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

于 2013-10-05T18:09:04.833 回答
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)
{
    /// .......
}
于 2013-10-05T16:57:21.813 回答