如何将布尔逻辑移出我的视图?

Guy*_*Guy 3 c# asp.net-mvc

在我的ASP.NET MVC视图中,我根据模型中设置的布尔值选择一个精灵,如下所示:

<div class="sprite-icon_dog<% =(Model.HasNewDog ? "_new" : "") %>"></div>
Run Code Online (Sandbox Code Playgroud)

这很难看,我不喜欢它.

我的目标是使用sprite-icon_dog_newif Model.HasNewDogis true并使用sprite-icon_dogif Model.HasNewDog是false.

什么是更优雅,更可读的方式来做到这一点?

Dan*_*ott 5

我认为HTML Helper将是最佳选择?

public static string DogDiv(this HTMLHelper html, bool HasDog)
{
  return "...."
}
Run Code Online (Sandbox Code Playgroud)

在你看来:

<%=Html.DogDiv(Model.HasDog) %>
Run Code Online (Sandbox Code Playgroud)

希望有所帮助,