Почему тег разрыва строки отображается в виде текста из пользовательского помощника HTML asp.net mvc - PullRequest
1 голос
/ 23 ноября 2010

У меня есть помощник html, который принимает неверный адрес и форматирует его, но я вижу фактический тег <br /> в виде текста вместо разрыва строки на моей веб-странице. Что я делаю, что вызывает это?

Вот часть моего вспомогательного метода

public static HtmlFormatAddress(this helper,   string number
    , string fraction
    , string direction
    , string street
    , string type
    ....)
{
    var sb = new StringBuilder();
    if (!string.IsNullOrEmpty(number))
        sb.Append(number.Trim() + " ");
    if (!string.IsNullOrEmpty(fraction))
        sb.Append(fraction.Trim() + " ");
    if (!string.IsNullOrEmpty(direction))
        sb.Append(direction.Trim() + " ");
    if (!string.IsNullOrEmpty(street))
        sb.Append(street + " ");
    if (!string.IsNullOrEmpty(type))

    if (sb.Length > 0)
        sb.Append("<br />");
    .....
    return sb.ToString();
}

Ответы [ 2 ]

3 голосов
/ 23 ноября 2010

Если это MVC2 / ASP.NET 4, вам нужно вернуть MvcHtmlString вместо String

Если нет, то убедитесь, что вы не кодируете вывод с помощью <%: %>, а вместо этогоиспользуйте <%= %>

1 голос
/ 23 ноября 2010

вы, вероятно, используете синтаксис <%: %>, который кодирует строку.

Попробуйте использовать <%= %> вместо

или измените тип возврата на MvcHtmlString, для чего вам потребуется только написать return MvcHtmlString.Create(sb.ToString());

...