ViewBag的模板

时间:2013-08-26 10:21:33

标签: c# asp.net asp.net-mvc-3 templates viewbag

我想创建一个模板来格式化一些ViewBags 到目前为止,我只有类的属性,我可以用

轻松修改
[UIHint("MYTemplate")]
public virtual float Foo { get; set; } 

属性的每个选项都会考虑“MyTemplate”并正确地合成输出。

如何将此“结构”传输到ViewBag,ViewBag是在某个控制器中定义的?

1 个答案:

答案 0 :(得分:1)

Actuall,你做不到。 ViewBag的内容在运行时动态解析。与模型属性相反。您只能将模板用于模型的属性。

唯一的另一种选择是将其添加到您的模型中。这背后的原因是,您的模型(或准确的视图模型)应该具有您的视图显示数据所需的所有内容。 ViewBag旨在为数据添加一些灵活性,这些数据不一定需要在您的模型中,如DropDownList的内容。因此,如果您需要在页面中显示类似ViewBag属性的内容,那么您应该考虑将该属性提升为您的模型。

或者,您可以使用部分视图。像这样@Html.Partial("_MyTemplate",ViewBag.Data)