Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在hyperlinkfield中,如何查询字符串转义值?_Asp.net_Gridview_Hyperlink - Fatal编程技术网

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页面中,一半在后面的代码中,另外,据我所知,你必须按数字而不是名称来获取列,如果我们以后添加列,这会造成维护陷阱。我认为最后的答案是,我做这件事的方式和它将得到的一样好。知道我没有用不必要的方式来做这件事让人放心,但我更希望你刚才告诉我一些我可以称之为的神奇函数,它会做得很干净!我希望我知道这样一个函数:(