2010-10-28 14 views
0

我的字符串我有產品名稱不想ASP.net逃避數據庫

abc® product1 

場如果我從數據庫中獲取數據,並進行數據綁定到下拉列表。它成爲

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

我不想ASP.net逃脫&reg;%amp;reg。 我該怎麼辦?

回答

-1

您想要在HTML encode之前將字符串顯示在HTML中。這將保留其名稱

0

在您的數據庫中您不應該存儲abc&reg; product1abc® product1。然後,當該值在頁面上呈現時,如果您使用<asp:DropDownList,則需要對其進行HTML編碼。

+0

我無法更改數據庫數據。我該怎麼辦?在數據綁定方法中再次對字符串進行編碼? – Billy 2010-10-28 08:20:54

+0

-1。你應該存儲數據 - 而不是它如何呈現 – 2010-11-22 16:53:03

+0

@ m.edmondson,這正是我在我的回答中所建議的。你仔細閱讀過嗎? Quote:'在你的數據庫中,你不應該存儲abc ® product1但abc®product1'。也許我應該粗體**不應該**。 – 2010-11-22 16:58:18

0

正如上面提到的人,abc ®是一個真正不好的名字。 它是否是那個?

+0

爲什麼它不好?這是一個代表註冊商標名稱的合法字符串,只是以一種錯誤的方式存儲。 – slugster 2010-10-28 08:39:36

+0

Opps我不是故意要它顯示(r)符號,但它確實如此。你想做什麼?因爲你有一個「Field」,其中有一個值,但你把它放在DropDown控件中? – MrJoeBlow 2010-10-28 08:51:33

1

我使用這樣的事(見下文),或許它會幫助你

首先,我編碼數字的entites數據(特殊符號),在數據庫中的數據推

當我從數據庫得到它,我在查看寫這樣的東西:

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

的一點是,當你在寫Model.test,這實際上意味着Html.Encode(Model.test)

在我的情況下,我不想模擬解碼它(因爲它可能是XSS例如),但只寫入正確的數據輸入值