部分视图内部局部视图---有条件的

时间:2011-08-22 19:18:03

标签: asp.net-mvc-3 model partial-views

我正在将一个Web表单应用程序移植到MVC3

我在局部视图中有局部视图,内部局部视图根据父视图模型的内容显示。

父部分视图具有此模型

@ModelType List(Of Integer)

然后这些行用于在同一页面中添加部分视图的多个实例。

<div style="width: 25%; vertical-align: bottom; float: left; clear: left">
    @Html.Partial("ArtBlock")
</div>
<div style="width: 25%; vertical-align: bottom; float: left; clear: left">
    @Html.Partial("ArtBlock")
</div>
<div style="width: 25%; vertical-align: bottom; float: left; clear: left">
    @Html.Partial("ArtBlock")
</div>

这个div用List(Of Integer)的四个值重复四次。也就是说,如果第一个索引包含的值大于100,它应该显示上面的第一个div,依此类推......

更新 应该根据列表索引中的id从数据库访问内部部分控件。

我在DAL中创建了函数(这是一个单独的dll),现在只剩下一个函数调用。

在Web表单中,使用以下内容绑定了内部用户控件...

ArtBlock1.Artikel = DataService.Artikel_GetByID(oList(0))

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

如果父类型被键入@ModelType List(Of Integer),则迭代模型以打印出div。这样的事情(借口语法错误,如果有的话,我使用C#,看起来你正在使用VB)

@foreach(var value in Model)
{
    <div style="width: 25%; vertical-align: bottom; float: left; clear: left">
        @Html.Partial("ArtBlock", value)
    </div>
}

我相信您想查看value,以便在那里添加if。

<强>更新 因此,假设您的DataService.Artikel_GetByID(oList(0))返回Artikel,您的父级部分将被输入@ModelType List(Of Artikel)。 使用与上面相同的循环,但现在您的子部分已键入@ModelType Artikel。 您的部分操作方法为return PartialView(artikelList, "nameOfPartial")