如何在MVC中循环中将模型数据从视图传递到局部视图

时间:2012-12-20 05:07:13

标签: c# asp.net-mvc razor

我有一个强类型模型视图的视图,我需要将此数据传递给循环中的局部视图。 (局部视图是数据模板的分类角色)

型号:

公共课Foo {

public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }

}

控制器:

public ActionResult Index()
    {
        var foo = new List<Foo>();

        for (var i = 1; i < 3; i++)
        {
            foo.Add(new Foo{Content = "test content " + i, Title = "test title " + i, Id = i});
        }
        return View(foo);
    }

查看(索引):

@model List<Project.Models.Foo>
 @foreach (var foo in Model)
    {
        Html.RenderPartial("OneFoo", foo);
    }

查看(OneFoo):

@using Project.Models
<div>
    Title:
        @Html.LabelFor(f => f.Title)
        Content:
        @Html.LabelFor(f => f.Content)
    }
</div>

我得到的输出是:标题:标题,内容:内容 - 它没有得到实际值。

2 个答案:

答案 0 :(得分:1)

您使用的是错误的助手,请使用:

@Html.DisplayFor(f => f.Content)

@Model.Content

答案 1 :(得分:1)

@Html.LabelFor(f => f.Title)

这正是它所说的,打印出标签。正如Eric所说,你需要使用DisplayFor来显示实际内容。