mvc视图中的条件逻辑vs htmlhelper vs action

Pau*_*les 5 asp.net-mvc asp.net-mvc-3

我有一个大视图,需要一些条件逻辑来决定在视图中间呈现几个html块中的哪一个.我的模型上有一个属性,它可以有几个不同的值来决定要输出的html.

我通常会将条件逻辑放在一个html帮助器中,但鉴于每个输出都是一大块html,我不确定在ac#文件中转义它们会很棒.我也可以将逻辑放在动作中并呈现不同的视图,但鉴于大多数视图都是相同的,这似乎也不是很好.所以我在我的视图(或部分?)中留下了多个if语句,这看起来也很丑陋(显然是不可测试的).

这样做的最佳方式是什么?

(我正在使用MVC3以防万一我可以使用新的和时髦的东西!)

bma*_*ini 4

我通常将单独的视觉块放在它们自己的部分中。然后我的视图有条件地使用 Html.Partial 调用每个部分。这可以防止主视图膨胀。

一般来说,我会尽量避免包含多个元素的 Html.Helpers。

就像是:

@if(Model.HasA) 
{
    @Html.Partial("widgetdetails-hasa")
}

@if(Model.HasB)
{ 
    @Html.Partial("widgetdetails-hasb")
}
// etc
Run Code Online (Sandbox Code Playgroud)