我对
HttpUtility.HTMLEncode
和
HttpUtility.HTMLDecode
当编码数据绑定到网格并稍后在上解码时
rowdatabound
事件这是一些背景代码。
数据已编码并绑定到网格视图
-遵守的用法
HttpUtility.HtmlEncode
for (var index = 0; index < dtData.Rows.Count; index++)
{
DataRow row = dtData.Rows[index];
row.ItemArray = row.ItemArray.Select(HttpUtility.HtmlEncode).ToArray<object>();
}
DataTable dtEncodedData = dtData;
gview.DataSource = dtEncodedData;
gview.DataBind();
gview.Visible = true;
当我对RowDataBound事件中的输入数据进行解码时,我不会从编码数据中得到相同的值。看来gridview在我这么做的基础上也在应用它的编码
HTMLDecode
没有给出我想要的?
protected void gview_RowDataBound(object sender, GridViewRowEventArgs e)
{
for (int i = 0; i < e.Row.Cells.Count; i++)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string decodedText = HttpUtility.HtmlDecode(e.Row.Cells[i].Text);
}
}
输入数据-
Single Quote '
编码后-
Single Quote '
解码文本-
Single Quote '
-观察
不是
与输入数据相同
的值
e.Row.Cells[i].Text
在…上
RowDataBound
事件被捕获为
Single Quote &#39
这把我的解码搞砸了我不明白
单引号'
字符串返回。
我应该找到一种方法来停止gridview对数据进行编码吗?如有真知灼见,不胜感激。