Быстрый вопрос.Как бы вы реорганизовали этот помощник ASP.NET MVC 2 Html?
Как бы вы реорганизовали этот Asp.net MVC 2 HtmlHelper? В частности, имеет смысл использовать класс TagBuilder в этом сценарии?
public static MvcHtmlString BusinessDisplayContacts(this HtmlHelper helper, string phone, string cellPhone,
string fax, string website, string email, bool hideEmail)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("<ul>");
if (!string.IsNullOrEmpty(phone)) {
sb.AppendLine("<li class=\"tel\">");
sb.AppendLine("<span class=\"type\">Work</span>:");
sb.AppendFormat("<span class=\"value\">{0}</span>",phone);
sb.AppendLine("</li>");
}
if (!string.IsNullOrEmpty(cellPhone)) {
sb.AppendLine("<li class=\"tel\">");
sb.AppendLine("<span class=\"type\">Cell</span> Phone:");
sb.AppendFormat("<span class=\"value\">{0}</span>",cellPhone);
sb.AppendLine("</li>");
}
if (!string.IsNullOrEmpty(fax)) {
sb.AppendLine("<li class=\"tel\">");
sb.AppendLine("<span class=\"type\">Fax</span>:");
sb.AppendFormat("<span class=\"value\">{0}</span>",fax);
sb.AppendLine("</li>");
}
if (!string.IsNullOrEmpty(website)) {
sb.AppendFormat("<li><a class=\"url\" href=\"{0}\">{0}</a></li>",website);
}
if (!hideEmail && !string.IsNullOrEmpty(email)) {
sb.AppendFormat("<li><a class=\"email\" href=\"mailto:{0}\">{0}</a></li>",email);
}
sb.AppendLine("</ul>");
if (sb.Length < 10)
{
return MvcHtmlString.Create("");
}
else {
return MvcHtmlString.Create(sb.ToString());
}
}
Заранее спасибо.
ОБНОВЛЕНИЕ:
Благодарим за конструктивные комментарии. В конце концов я решил переместить вышеуказанный код в строго типизированное частичное представление в соответствии с предложением @ queen3.
Я лично использовал макросы Spark, где вы можете создавать такие вещи, используя разметку HTML. В движке WebForms вы можете использовать частичные представления. Вы эффективно создаете целое частичное представление внутри вспомогательного метода. Это не то, для чего они нужны. Используйте форматированные строки или создатели тегов, вы в конечном итоге используете неподдающийся кошмарному коду. – queen3