Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不希望ASP.net从数据库中转义我的字符串_Asp.net - Fatal编程技术网

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

不希望ASP.net从数据库中转义我的字符串,asp.net,Asp.net,我有一个带有产品名称的字段 abc&reg; product1 如果我从数据库获取数据并将其数据绑定到dropdownlist。它变成 <option value="2">abc &amp;reg; product1</option> 我不希望ASP.net逃避®;至%amp;规则。 我该怎么办?在数据库中不应存储abc®;产品1,但abc®产品1。然后,当该值在页面上呈现时,您需要对其进行HTML编码,如果您像上面提到的那样使用,则会自

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

abc&reg; product1
如果我从数据库获取数据并将其数据绑定到dropdownlist。它变成

<option value="2">abc &amp;reg;  product1</option>
我不希望ASP.net逃避®;至%amp;规则。
我该怎么办?

在数据库中不应存储abc®;产品1,但abc®产品1。然后,当该值在页面上呈现时,您需要对其进行HTML编码,如果您像上面提到的那样使用,则会自动进行编码,abc®是一个非常糟糕的feild名称。
必须是这样吗?

在HTML中显示字符串之前,您希望先删除该字符串。这将保留其名称

我正在使用这样的东西,请参见下文,也许它会帮助您

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

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

<% =Html.TextBox("test", Model.test).ToString().Replace("&amp;#", "&#")%>
关键是,当您编写Model.test时,实际上意味着Html.EncodeModel.test


在我的例子中,我不想简单地对它进行解码,因为它可能是XSS,但只将正确的数据写入输入值

我无法更改数据库数据。我该怎么办?用数据绑定方法对字符串重新编码?@m.edmondson,这正是我在回答中建议的。你仔细看了吗?报价:在您的数据库中不应存储abc®;产品1,但abc®产品1。也许我应该加粗,不应该加粗。®是无效的HTML,而abc®;is@m.edmondson,是的,但这是您应该存储在数据库中的内容。当显示此数据时,您将对其进行HTML编码。您不应该存储abc®;在数据库中,除非您只想将此数据库绑定到web应用程序。如果您想在Windows应用程序中使用它,会发生什么?或者对值执行搜索?如果您的页面是utf-8编码的,那么®也是完全有效的HTML。我建议您使用并亲自查看。@m.edmondson,如果我的问题是为了带来一些价值或修改它,我会对其进行编辑,因为它包含错误的信息。如果没有,我不打算为了投票而编辑。所以下次在投反对票之前,确保你已经正确地阅读了答案。为什么它不好?这是一个代表注册商标名称的合法字符串,只是存储方式有点错误。哎呀,我不是想让它准确地显示r符号,但它确实显示了。你想干什么?因为你有一个字段,里面有一个值,但是你把它放在一个下拉控件中?