Книга: ASP.NET MVC Framework

Конкатенация строк

Конкатенация строк

Самый очевидный способ — сгенерировать разметку конкатенацией строк. Код для этого метода приведен в листинге 5.11.

Листинг 5.11. Реализация метода DatePickerc помощью конкатенации строк

using System.Web.Mvc;
using System.Text;
using System;
using System.Globalization;
public static class DataPickerHelper
{
  public static string DatePicker(this HtmlHelper html, string id)
 {
    return DatePicker(html, id, String.Empty);
  }
  public static string DatePicker(this HtmlHelper html,
                  string id, string text)
  {
    StringBuilder sb = new StringBuilder();
    if (!String.IsNullOrEmpty(text))
    {
      sb.Append("<div);
      sb.Append (id);
      sb.Append("">");
      sb.Append(text);
    }
    /* Day */
    sb.Append("<select);
    sb.Append(id);
    sb.Append("">");
    sb.Append("<option></option>") ;
    for (int i = 1; i <= 31; i++)
    {
      sb.Append("<option>");
      sb.Append(i.ToString());
      sb.Append("</option>");
      sb.Append("</select>");
      sb.Append("&nbsp;");
    }
    /* Month */
    sb.Append("<select);
    sb.Append(id);
    sb.Append("">");
    sb.Append("<option></option>");
    for (int i = 0; i <= 11; i++)
    {
      sb.Append("<option>");
      sb.Append(DateTimeFormatInfo.CurrentInfo.MonthNames[i]);
      sb.Append("</option>");
    }
    sb.Append("</select>");
    sb.Append("&nbsp;");
    /* Year */
    sb.Append("<select);
    sb.Append(id);
    sb.Append("">");
    sb.Append("<option></option>");
    for (int i = 1900; i <= DateTime.Now.Year; i++)
    {
      sb.Append("<option>");
      sb.Append(i.ToString());
      sb.Append("</option>");
    }
    sb.Append("</select>");
    if (!String.IsNullOrEmpty(text))
    {
      sb.Append("</div>");
    }
    return sb.ToString();
  }
}

Плюс решения, продемонстрированного в листинге 5.11, — простота реализации "в лоб", копированием кода из макета верстки. Минусы решения очевидны — поддержка такого кода сложна за счет необходимости работы с кодом, перемешанным с большим количеством строковых констант.

Оглавление книги


Генерация: 0.773. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз