在超级链接字段中,如何查询字符串转义值?

时间:2012-03-06 20:58:20

标签: asp.net gridview hyperlink

我在GridView中有一个DataNavigateUrlFormatString="blahblah/dostuff.aspx?id={0}"的超链接字段。但后来我遇到了一个替代{0}的字段中有加号的情况。它不会被转义为查询字符串,所以现在它看起来像一个空格而不是加号。

我认为如果包含&符,等号或百分号,会出现类似的问题。

问:有没有办法在参数上执行查询字符串转义?

我想我可以把它变成TemplateFieldEval。充其量是凌乱和丑陋。这似乎是一个一直存在的问题。是否有一种干净的方式逃脱?

1 个答案:

答案 0 :(得分:1)

经过一番搜索,我得出的结论是,没有简单的解决办法。您可以使用没有模板字段的Eval直接生成URL。有人建议您处理RowDataBound事件并找到正确的列并修复URL,但这对我来说似乎是非常难看的解决方案。

需要大量工作的最干净的解决方案是创建一个类,其唯一目的是提供GridView(您甚至可以将其直接放在后面的代码中)并在后面的代码中用C#代码编码属性。这就像在MVC中创建一个ViewModel,只是为了提供特定的视图。