2011-08-22 158 views
1

我移植一个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 ...

UPDATE: 内局部控制都应该是从对数据库访问的来自列表索引的id的基础。

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

在Web表单,内用户控件使用以下...

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

任何人可以帮助我在做什么来实现这一约束?

回答

0

如果您的父部分已输入@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这样你就可以如果有添加。

更新: 所以假设你DataService.Artikel_GetByID(oList(0))返回一个Artikel,你的父母会部分键入@ModelType List(Of Artikel)。 使用与上面相同的循环,但现在您的孩子部分被输入@ModelType Artikel。 您的部分行动方法将return PartialView(artikelList, "nameOfPartial")

+0

对不起,我忘了提到真正的问题。更新了上面的帖子...... –

+0

使用包含所有必要数据的ViewModel。 ViewModels是你的朋友。 –

+0

视图模型如何包含这样的数据,这是动态决定的......我的意思是我的ViewModel的视图包含一些数据,然后我的ViewModel的部分视图包含更多的数据,然后我的ViewModel的内部部分视图包含一些更多的数据决定运行。 –