[英]asp.net 4.5 TextBox HTML Encoding
我有一个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>
数据由实体框架管理。 在大多数情况下,一切正常。 但是,如果我进入Umlaute(ÄÖÜäöü),就会遇到问题。 当我输入它们并保存时,一切都很好。 数据正确显示在数据库中。 当我查看数据时,例如,一切都很好。 但是,当我尝试编辑数据时,数据中的数据被html编码为ÄÖÜ,而我无法再次保存。 我不是asp.net的专家,所以现在很茫然。 我的错误在哪里? 谢谢你的帮助。
尝试看一下: 字符串编码-德语变音符号
在不知道您的配置的情况下,我会假设您的内容从服务器加载时可能是字符集UTF-8
,这会导致非UTF-8字符(如Ü)被HTML编码。 因此,您的文本框显示的是HTML编码的字符,而不是原始的UTF-16
字符-但是当在常规ItemTemplate中呈现时,浏览器会遵循编码方式,这看起来非常好。
您可以尝试在web.config中使用此方法在所有响应上强制采用UTF-16编码,这应确保您的变音符永远不会在响应中编码:
<configuration>
<system.web>
<globalization requestEncoding="utf-16" responseEncoding="utf-16" />
</system.web>
</configuration>
YMMV。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.