Теги сервера с HTML и блоками кода внутри

Я пытаюсь сделать что-то вроде этого:

<asp:ListItem><div><%= Message.Success %></div></asp:ListItem>

но это дает мне эту ошибку:

Ошибка времени выполнения ASP.NET: блоки кода не поддерживаются в этом контексте.

Есть идеи, как обойти эту ошибку?


person Matheus Simon    schedule 18.10.2018    source источник


Ответы (1)


Вам нужно выражение привязки внутри Controls <%# %>.

<asp:ListView ID="ListView1" runat="server">
    <ItemTemplate>
        <div>
            <%# Message.Success %>
        </div>
    </ItemTemplate>
</asp:ListView>

Однако это не работает в ListItem. Вам нужно будет добавить этот элемент с кодом, если вы хотите, чтобы отображался Message.Success.

DropDownList1.Items.Add(new ListItem() { Text = Message.Success, Value = "0" });
person VDWWD    schedule 18.10.2018
comment
будет DropDownList1.Items.Add(new ListItem() { Text = "<div>" + Message.Success + "</div>", Value = "0" }); работать? - person Matheus Simon; 18.10.2018
comment
Нет, потому что вы не можете использовать элементы html в ListItem. Он будет просто визуально отображаться как <div>Message</div>. - person VDWWD; 18.10.2018
comment
Спасибо. Я создаю своего рода генератор html, знаете ли вы какие-либо другие элементы сервера, которые не принимают html внутри? или где их найти? - person Matheus Simon; 18.10.2018
comment
Я думаю, что только элементы управления, которые используют пару ключ-значение из ListItem (например, раскрывающийся список, флажок, радиокнопка и т. Д.). - person VDWWD; 18.10.2018