我有一个大视图,需要一些条件逻辑来决定在视图中间渲染几个 html 块中的哪一个。我的模型有一个属性,它可以有几个不同的值,决定要输出的 html。
我通常会将条件逻辑放入 html 帮助程序中,但考虑到每个输出都是相当大的 html 块,我不确定在 C# 文件中转义这些是否会很好。我还可以将逻辑放入操作中并呈现不同的视图,但考虑到大多数视图是相同的,这看起来也不太好。因此,在我看来(或部分?),我留下了多个 if 语句,这也看起来很丑陋(并且显然是不可测试的)。
这样做的最佳方法是什么?
(我正在使用 MVC3,以防有一些新的、时髦的东西我可以使用!)
我通常将单独的视觉块放在它们自己的部分中。然后我的视图有条件地使用 Html.Partial 调用每个部分。这可以防止主视图膨胀。
一般来说,我会尽量避免包含多个元素的 Html.Helpers。
就像是:
@if(Model.HasA)
{
@Html.Partial("widgetdetails-hasa")
}
@if(Model.HasB)
{
@Html.Partial("widgetdetails-hasb")
}
// etc
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)