2011-03-02 202 views
0

我有一个有条件的业务逻辑,确定是否应该在视图中显示模型的属性。根据最佳实践哪里将是实施它的地方?MVC3 - 条件视图呈现

在视图级别实现此逻辑对我来说似乎不正确。

谢谢

+0

问题用“条件视图渲染”定义了答案,意思是条件应该在视图渲染的某个位置。:) –

+0

视图内的逻辑意味着一个复杂的视图,没有测试能力,每个视图必须实现它的重复逻辑。 – Ninjago

回答

0

IMO,它属于模型。我会将该业务逻辑放入模型中的IsRequiredYourProperyName属性中。

+0

您能举个例子吗? – Ninjago

0

真的吗?如果你传递布尔值来指示它是否应该作为ViewModel的一部分显示,我会认为在视图中没问题。该视图不应该查询外部资源以查看是否应呈现某些UI元素,但如果需要确定呈现内容的所有内容在ViewModel中,那么简单的if语句有什么问题?或者,如果一个条件显示属性是常见的,你可以创建一个自定义的DisplayTemplate或EditorTemplate,并为其实现逻辑。

所以你的ViewModel应该包装你想发送到视图的所有东西。在你的情况下,它听起来像它应该包装你的DomainModel和某种类型的字典或KeyValuePair集合,详细说明每个属性是应该显示还是不显示为布尔值。无论如何,这就是我会做的。