将ViewBag中的其他数据从Partial传递到EditorTemplate

时间:2012-03-01 09:04:42

标签: vb.net asp.net-mvc-3 razor partial-views viewbag

我有一个部分观点:

@ModelType ProjectCreateViewModel
@Code 
    Dim vdd = New ViewDataDictionary()
    vdd.Add("Classes", "template")
End Code
@Html.EditorFor(Function(m) m.Project.InvoiceScheduleBasedOnDates, vdd))

在这个局部视图中,我创建了新的ViewDataDictionary,以将其他数据传递给我的编辑器。在编辑器中,我访问ViewBag.Classes,其值为null。但是,当我调试时,我可以看到ViewBag包含“类”键。这是一个屏幕转储:

You can see that var1 is null, but ViewBag contains "Classes"

为什么会发生这种情况,我该如何将此值从部分模板传递到编辑器模板?

1 个答案:

答案 0 :(得分:3)

您可以将其作为匿名对象传递:

@ModelType ProjectCreateViewModel
@Html.EditorFor(Function(m) m.Project.InvoiceScheduleBasedOnDates, New With { .Classes = "template" })

并在您的模板中:

@Modelype InvoiceDate
@Code
    Dim var1 = ViewBag.Classes
    ...
End Code