C# asp.net 4.5文本框HTML编码

C# asp.net 4.5文本框HTML编码,c#,asp.net,C#,Asp.net,我有一个包含以下代码的aspx: <asp:FormView runat="server" ID="VeranstaltungDetailForm" ItemType="Budgetverwaltung.Models.Veranstaltung" DataKeyNames="VeranstaltungsId" SelectMethod="GetIt

我有一个包含以下代码的aspx:

<asp:FormView runat="server"
                  ID="VeranstaltungDetailForm"
                  ItemType="Budgetverwaltung.Models.Veranstaltung"
                  DataKeyNames="VeranstaltungsId"
                  SelectMethod="GetItem"
                  InsertMethod="InsertItem"
                  UpdateMethod="UpdateItem"
                  OnDataBinding="VeranstaltungDetailForm_DataBinding"
                  OnDataBound="VeranstaltungDetailForm_DataBound"
                  OnItemCommand="VeranstaltungDetailForm_ItemCommand">

        <ItemTemplate>
            <fieldset>
                <legend><%#: Item.Bezeichnung %> (<%#: Item.Veranstaltungsnummer %>)</legend>
                <table class="content-table">
                    <tr>
                        <td class="dark-table"><span style="font-weight:bold;">Beschreibung:</span></td>
                        <td class="light-table"><%#: Item.Beschreibung %></td>
                        <td class="dark-table"><span style="font-weight:bold;">Ort:</span></td>
                        <td class="light-table"><%# Item.Ort %></td>
                    </tr>
                </table>
            </fieldset>
        </ItemTemplate>

        <InsertItemTemplate>
            <fieldset>
                <legend>Neue Veranstaltung anlegen</legend>
                  <table class="content-table">
                    <tr>
                        <td class="dark-table"><span style="font-weight:bold;">Beschreibung:</span></td>
                        <td class="light-table"><asp:TextBox runat="server" ID="insert_beschreibung" Text="<%#: BindItem.Beschreibung %>"></asp:TextBox></td>
                        <td class="dark-table"><span style="font-weight:bold;">Ort:</span></td>
                        <td class="light-table"><asp:TextBox runat="server" ID="insert_ort" Text="<%#: BindItem.Ort %>"></asp:TextBox></td>
                    </tr>
                </table>
            </fieldset>
        </InsertItemTemplate>

        <EditItemTemplate>
            <fieldset>
                <legend>Veranstaltung bearbeiten "<%#: Item.Bezeichnung %>"</legend>
                <dl>
                  <table class="content-table">
                    <tr>
                        <td class="dark-table"><span style="font-weight:bold;">Beschreibung:</span></td>
                        <td class="light-table"><asp:TextBox runat="server" ID="edit_beschreibung"  Text="<%# BindItem.Beschreibung %>"></asp:TextBox></td>
                        <td class="dark-table"><span style="font-weight:bold;">Ort:</span></td>
                        <td class="light-table"><asp:TextBox runat="server" ID="edit_ort" Text="<%#: BindItem.Ort %>"></asp:TextBox></td>
                    </tr>
                </table>
                </dl>
            </fieldset>
        </EditItemTemplate>
    </asp:FormView>

()
贝施雷邦:
Ort:
新威兰斯塔通酒店
贝施雷邦:
Ort:
比尔贝滕村“
贝施雷邦:
Ort:
数据由实体框架管理。在大多数情况下,一切正常。但如果我进入乌姆劳特(Umlaute),我就会遇到问题。 当我输入它们并保存时,一切都很好。数据正确显示在数据库中。 当我查看数据时,例如,一切正常。但是当我试图编辑数据时,数据会被html编码为ÄÖÜ,我无法再次保存它。我不是asp.net的专家,所以我现在不知所措。我的错在哪里?
感谢您的帮助。

尝试查看此处:

在不知道您的配置的情况下,我假设从服务器加载时,您的内容可能是字符集
UTF-8
,这会导致像“Ü”这样的非UTF-8字符被HTML编码。因此,您的文本框显示的是HTML编码的字符,而不是原始的
UTF-16
字符-但在正常的ItemTemplate中呈现时,浏览器尊重编码,这看起来非常好

您可以尝试在web.config中使用对所有响应强制UTF-16编码,这将确保umlaut字符永远不会在响应中编码:

<configuration>
  <system.web>
    <globalization requestEncoding="utf-16" responseEncoding="utf-16" />
  </system.web>
</configuration>


YMMV.

您能否对“获取html编码为ÄÖÜ”的含义进行一点扩展?在ItemTemplate中,它显示为“ÄÖÜ”,在EditItemTemplate中,它显示为ÄÖÜ 我无法将其保存在该状态,否则我将得到一个HttpRequestValidationException(0x80004005)。谢谢,但我不认为字符串编码是这种情况的罪魁祸首。它必须与自动进行的数据的html编码或解码有关。