ASP.Net web forms, рекомендуемые для замены текста в элементе управления Literal

#asp.net #webforms #literals

#asp.net #веб-формы #литералы

Вопрос:

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

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

Разметка 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]);
  

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

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

Ответ №1:

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

Комментарии:

1. Идея в том, чтобы сделать его как можно более легким, я должен был упомянуть об этом. По этой причине мне сложно добавлять на страницу еще один элемент управления гиперссылками.

2. Тогда почему бы просто не использовать mvc или не сгенерировать страницу целиком. Я сомневаюсь, что любой из вариантов будет работать медленнее. Второй, я бы поспорил, обладает лучшей производительностью и не имеет недостатка в состоянии просмотра.