You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GridView向TextBox传值出现HTML编码转义,求服务端解码方法

问题解决:GridView传递文本到TextBox时的HTML编码问题

问题描述

将文本从GridView传递到TextBox时,单引号显示为',空格显示为 。原因是GridView的BoundField默认会对内容进行HTML编码,导致获取Cells.Text时得到的是编码后的字符串。

解决方案

使用ASP.NET内置的HTML解码方法即可还原正常文本,无需手动替换字符。推荐以下两种服务端方法:

  1. Server.HtmlDecode(Web Forms页面直接可用,依赖System.Web.UI.Page)
  2. HttpUtility.HtmlDecode(通用方法,需引用System.Web命名空间)

修改后的代码

把获取GridView内容的代码调整为:

for (int i = 0; i < GridView1.Rows.Count; i++)
{
    // 用Server.HtmlDecode解码
    string decodedText = Server.HtmlDecode(GridView1.Rows[i].Cells[1].Text);
    TextBox2.Text += decodedText;
    
    // 或者用HttpUtility.HtmlDecode(需添加using System.Web;)
    // string decodedText = HttpUtility.HtmlDecode(GridView1.Rows[i].Cells[1].Text);
    // TextBox2.Text += decodedText;
}

补充说明

  • 你之前尝试的HtmlEncode是编码方法,作用是将正常文本转为HTML实体,和需求完全相反,因此无法解决问题;而HtmlDecode是解码方法,能把&#39;、&#160;这类HTML实体还原为对应字符。
  • 若想从根源避免编码,可修改GridView的BoundField配置,设置HtmlEncode="False":
<asp:BoundField AccessibleHeaderText="h2" HeaderText="h2" HtmlEncode="False" />

这种方式绑定数据时不会自动编码,直接获取Cells.Text就是原始文本,但需注意XSS安全风险——如果文本来自用户输入,不建议关闭编码。

内容的提问来源于stack exchange,提问作者user20465780

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 17:01:06