ASP.Net веб-формы лучшие практики для замены текста в элемент управления Literal - PullRequest
1 голос
/ 20 апреля 2011

Это простой вопрос, на который я смотрю ваш вклад.

Я ищу лучшую практику для замены фрагмента текста из кода в буквальном элементе управления.

Разметка aspx выглядит следующим образом, и я заменяю значение в ссылке, где написано {0}:

<asp:Literal runat="server" ID="litViewLightingCollections" Visible="false">
    <span class="disclaimer">
        <div style="padding-bottom:5px;">
            <a href="/LightingCollections/{0}/default.aspx" >
                <img src="/images/productdetail/elements/icon-lighting-collections.gif" border="0" align="absmiddle"> Lighting Collections
            </a>
        </div>
    </span>
</asp:Literal>

Итак, что я сделал для вызова string.format в тесте, который отлично работает:

litViewLightingCollections.Visible = true;
litViewLightingCollections.Text = String.Format(litViewLightingCollections.Text, lightingDictionary[category]);

И это прекрасно работает, однако есть и другие способы сделать это. Какой самый лучший и самый легкий способ сделать это?

  • Я мог бы иметь другой буквальный элемент управления в теге href и установить его значение
  • Я могу создать заполнитель в тексте, например {replaceme}, и вызвать String.Replace для lit.text
  • Поместите свойство в коде и используйте <% = Property%> (мне действительно не нравится это, так как оно создает много свойств на странице)
  • Размещение элемента управления гиперссылкой в ​​литерале (против легкого веса)
  • Какие есть другие варианты?

1 Ответ

0 голосов
/ 20 апреля 2011

Если все, что вы пытаетесь сделать, это заменить href, то нет смысла использовать литерал.Одним из основных элементов управления является то, что они позволяют более программным способом устанавливать значения.Один из способов решить эту проблему - заменить кнопку ссылки и при загрузке кнопки ссылки установить href в коде позади.Другое решение состоит в том, чтобы использовать теги asp старого стиля <% =%> и сделать так, чтобы код сервера автоматически заменял необходимый раздел.

...