不希望ASP.net从数据库中转义我的字符串

时间:2010-10-28 08:03:41

标签: asp.net

我有一个产品名称为

的字段
abc® product1

如果我从数据库获取数据并将其数据绑定到下拉列表。它变成

<option value="2">abc &amp;reg;  product1</option>

我不希望ASP.net将&reg;转移到%amp;reg。 我该怎么办?

4 个答案:

答案 0 :(得分:1)

我正在使用这样的东西(见下文),也许它会帮助你

首先我在数字实体中编码数据(特殊符号),在数据库中推送数据时

当我从数据库收到它时,我在View中写下这样的东西:

<% =Html.TextBox("test", Model.test).ToString().Replace("&amp;#", "&#")%>

重点是,当你写Model.test时,这实际上意味着Html.Encode(Model.test)

在我的情况下,我不想对它进行模拟解码(因为它可能是XSS),但只将正确的数据写入输入值

答案 1 :(得分:0)

在您的数据库中,您不应该存储abc&reg; product1,而是abc® product1。然后,当在页面上呈现此值时,您需要对其进行HTML编码,如果您使用<asp:DropDownList,则会自动对其进行编码。

答案 2 :(得分:0)

如上所述,abc®是一个非常糟糕的字段名称。 它必须是那个吗?

答案 3 :(得分:-1)

您希望在HTML中显示字符串之前HTML encode。这将保留其名称