Я бы определенно переместил это в ViewHelper. Это так, потому что, как только вы начинаете писать логику представления в представлениях - aspx-файлах - вы начинаете создавать «суп-тег», который уменьшает понятность кода и, следовательно, увеличивает затраты на обслуживание.
Еще одно преимущество использования ViewHelpers для инкапсуляции вашей логики представления заключается в том, что оно также делает ваше приложение более гибким для модульного тестирования. Итак, учитывая ваш код выше, я бы использовал его в ViewHelper, например,
using System.Linq;
using System.Web.Mvc;
using System;
using System.Text;
using System.Web.Mvc.Html; //Need this for Html helper extension method
public static class GroupViewHelper
{
public static void ShowContactInfo(this HtmlHelper helper, ModelType model)
{
if (model.Group.IsPremium && null != model.Group.ContactInfo)
{
//Do your rendering here.
}
}
// ... your other ViewHelper methods here.
}
Впоследствии, где-то на ваш взгляд, я бы назвал этот вспомогательный метод примерно так:
<% Html.ShowContactInfo(Model); %>
Эта техника приводит к тому, что представления, которые избегают «супа метки», являются более удобными в обслуживании и очень легко проверяемыми.