Asp.net 在hyperlinkfield中,如何查询字符串转义值?
我在Asp.net 在hyperlinkfield中,如何查询字符串转义值?,asp.net,gridview,hyperlink,Asp.net,Gridview,Hyperlink,我在GridView中有一个超链接字段,它具有DataNavigateUrlFormatString=“blahblah/dostuff.aspx?id={0}”。但是我遇到了一个例子,替换{0}的字段中有一个加号。它不是为查询字符串转义的,所以现在它看起来像一个空格而不是加号 我认为,如果它包括符号、等号或百分号,也会出现类似的问题 Q:有没有办法对参数进行查询字符串转义 我想我可以把它变成模板字段和评估。充其量那是混乱和丑陋的。这似乎是一个经常出现的问题。有没有一种干净的方法可以逃脱?经过一
GridView
中有一个超链接字段,它具有DataNavigateUrlFormatString=“blahblah/dostuff.aspx?id={0}”
。但是我遇到了一个例子,替换{0}的字段中有一个加号。它不是为查询字符串转义的,所以现在它看起来像一个空格而不是加号
我认为,如果它包括符号、等号或百分号,也会出现类似的问题
Q:有没有办法对参数进行查询字符串转义
我想我可以把它变成
模板字段
和评估
。充其量那是混乱和丑陋的。这似乎是一个经常出现的问题。有没有一种干净的方法可以逃脱?经过一番探索,我得出结论,没有简单的解决办法。您可以使用无模板字段的Eval直接生成URL。有人建议您处理RowDataBound事件,找到正确的列并修复URL,但这对我来说似乎是一个非常丑陋的解决方案
需要大量工作的最干净的解决方案是创建一个类,其唯一目的是为GridView提供数据(您甚至可以将其直接放在代码隐藏中),并在代码隐藏中用C#代码对属性进行编码。这就像在MVC中创建一个ViewModel只是为了提供一个特定的视图。经过一点搜索,我得出结论,没有简单的解决方案。您可以使用无模板字段的Eval直接生成URL。有人建议您处理RowDataBound事件,找到正确的列并修复URL,但这对我来说似乎是一个非常丑陋的解决方案
需要大量工作的最干净的解决方案是创建一个类,其唯一目的是为GridView提供数据(您甚至可以将其直接放在代码隐藏中),并在代码隐藏中用C#代码对属性进行编码。这就像在MVC中创建一个ViewModel只是为了提供一个特定的视图。我通过使用eval来实现它,但它看起来很圆,很难看。使用数据绑定事件似乎更难看,因为一半的代码在aspx页面中,一半在代码隐藏中,另外,据我所知,您必须按数字而不是名称获取列,这会在以后添加列时造成维护陷阱。我想最终的答案是,我做这件事的方式是最好的。知道我没有用不必要的方式来做这件事让人放心,但我更希望你刚才告诉我一些我可以调用的神奇函数,它可以把事情做得干净利落!我希望我知道这样一个功能:(我是通过使用eval来实现的,但它看起来相当圆滑和丑陋。使用数据绑定事件似乎更丑陋,因为一半的代码在aspx页面中,一半在后面的代码中,另外,据我所知,你必须按数字而不是名称来获取列,如果我们以后添加列,这会造成维护陷阱。我认为最后的答案是,我做这件事的方式和它将得到的一样好。知道我没有用不必要的方式来做这件事让人放心,但我更希望你刚才告诉我一些我可以称之为的神奇函数,它会做得很干净!我希望我知道这样一个函数:(