0

我想创建一个模板来格式化一些 ViewBags。
到目前为止,我只有一个类的属性的情况,我可以很容易地修改它

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

属性的每个选择都将考虑“MyTemplate”并正确格式化输出。

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

4

1 回答 1

1

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

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

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

于 2013-08-26T10:43:29.913 回答