代码之家  ›  专栏  ›  技术社区  ›  Billy

不希望ASP.NET从数据库中转义字符串

  •  0
  • Billy  · 技术社区  · 15 年前

    我有一个带有产品名称的字段

    abc® product1
    

    如果我从数据库中获取数据并将其绑定到DropDownList。它变成

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

    我不希望ASP.NET从 &reg; %amp;reg . 我该怎么办?

    4 回复  |  直到 13 年前
        1
  •  -1
  •   m.edmondson    15 年前

    你想要的 HTML encode 在HTML中显示之前的字符串。这将保留其名称

        2
  •  1
  •   vlukham    13 年前

    我在用这种东西(见下文),也许它能帮助你

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

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

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

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

    在我的例子中,我不想同时对它进行解码(因为它可能是XSS),而是只将正确的数据写入输入值

        3
  •  0
  •   Darin Dimitrov    15 年前

    在数据库中,不应存储 abc&reg; product1 但是 abc® product1 . 然后当这个值在页面上呈现时,需要对它进行HTML编码,如果使用 <asp:DropDownList .

        4
  •  0
  •   MrJoeBlow    15 年前

    如上所述,ABC是一个很坏的名字。 一定是那样吗?

    推荐文章