在我的ASP.NET MVC视图中,我根据模型中设置的布尔值选择一个精灵,如下所示:
<div class="sprite-icon_dog<% =(Model.HasNewDog ? "_new" : "") %>"></div>
这很难看,我不喜欢它。
如果sprite-icon_dog_new
为Model.HasNewDog
,我的目标是使用true
,如果sprite-icon_dog
为假,则使用Model.HasNewDog
。
更优雅,更易读的方法是什么?
答案 0 :(得分:5)
我认为HTML Helper会成为可能吗?
public static string DogDiv(this HTMLHelper html, bool HasDog)
{
return "...."
}
在您看来:
<%=Html.DogDiv(Model.HasDog) %>
希望有所帮助,
丹
答案 1 :(得分:0)
这很难看,但它可能是最好的选择。如果将逻辑移动到html帮助器,则现在模糊了显示内容和业务逻辑之间的界限。如果您想更改标记或CSS,除非您更改Html帮助程序类中的代码,否则您将受限于您可以执行的操作。
在我看来,丑陋的一部分已经习惯了MVC模型。 MVC的一个支柱是在显示,业务逻辑和数据模型之间提供严格的分离,但是如果你开始在帮助器中添加显示逻辑,它就会开始否定MVC的目的。