【问题标题】:partial view inside partial view --- conditional局部视图内的局部视图 --- 有条件的
【发布时间】:2011-08-22 19:18:03
【问题描述】:

我正在将 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))

谁能帮我实现这个目标?

【问题讨论】:

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


    【解决方案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")

    【讨论】:

    • 使用包含所有必要数据的 ViewModel。 ViewModel 是你的朋友。
    • 视图模型如何包含这样的数据,这是动态决定的......我的意思是我的视图视图模型包含一些数据,然后我的部分视图视图模型包含更多数据,然后我的内部部分视图模型视图包含更多由运行时间决定的数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多