我想创建一个模板来格式化一些ViewBags。
到目前为止,我只有类的属性,我可以很容易地用它来修改。
[UIHint("MYTemplate")]
public virtual float Foo { get; set; } 属性的每一个选择都将考虑"MyTemplate“,并正确地格式化输出。
我如何能够将这种“结构”转换为ViewBag,它是在某个控制器中定义的?
发布于 2013-08-26 10:43:29
实际上,您不能。ViewBag的内容在运行时被动态解析。而不是模型属性。只能对模型的属性使用模板。
唯一的其他选择是将它添加到您的模型中。这背后的原因是,您的模型(确切地说是视图模型)应该拥有视图显示数据所需的一切。ViewBag的目的是为不需要像DropDownList的内容那样存在于模型中的数据增加一些灵活性。因此,如果需要在页面中显示类似于ViewBag的属性的内容,那么应该考虑将该属性提升到模型中。
或者,您可以使用部分视图。就像这样,@Html.Partial("_MyTemplate",ViewBag.Data)
https://stackoverflow.com/questions/18441876
复制相似问题