我在GridView
中有一个DataNavigateUrlFormatString="blahblah/dostuff.aspx?id={0}"
的超链接字段。但后来我遇到了一个替代{0}的字段中有加号的情况。它不会被转义为查询字符串,所以现在它看起来像一个空格而不是加号。
我认为如果包含&符,等号或百分号,会出现类似的问题。
问:有没有办法在参数上执行查询字符串转义?
我想我可以把它变成TemplateField
和Eval
。充其量是凌乱和丑陋。这似乎是一个一直存在的问题。是否有一种干净的方式逃脱?
答案 0 :(得分:1)
经过一番搜索,我得出的结论是,没有简单的解决办法。您可以使用没有模板字段的Eval直接生成URL。有人建议您处理RowDataBound事件并找到正确的列并修复URL,但这对我来说似乎是非常难看的解决方案。
需要大量工作的最干净的解决方案是创建一个类,其唯一目的是提供GridView(您甚至可以将其直接放在后面的代码中)并在后面的代码中用C#代码编码属性。这就像在MVC中创建一个ViewModel,只是为了提供特定的视图。