Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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
C# 将%3F解码为'';在URL中使用UriBuilder_C#_Http_Asp.net Mvc 4_Uribuilder - Fatal编程技术网

C# 将%3F解码为'';在URL中使用UriBuilder

C# 将%3F解码为'';在URL中使用UriBuilder,c#,http,asp.net-mvc-4,uribuilder,C#,Http,Asp.net Mvc 4,Uribuilder,我正在构建一个url,并使用它指向我的一个控制器来做一些工作。当我传递包含%3F的url时,我遇到了这个错误 A potentially dangerous Request.Path value was detected from the client (?). UriBuilder生成的Url如下所示: 当我将%3F更改为时?“DoChanges”之后,它工作正常,但它不喜欢它的%3F。我怎样才能破译这个?我需要的参数可见,以便服务台可以读取链接,如果他们需要。所以我不想对整个事情进行编码

我正在构建一个url,并使用它指向我的一个控制器来做一些工作。当我传递包含%3F的url时,我遇到了这个错误

A potentially dangerous Request.Path value was detected from the client (?).
UriBuilder生成的Url如下所示:


当我将%3F更改为时?“DoChanges”之后,它工作正常,但它不喜欢它的%3F。我怎样才能破译这个?我需要的参数可见,以便服务台可以读取链接,如果他们需要。所以我不想对整个事情进行编码。

我不能在评论中发表这篇文章,所以我将把它写在这里。 你的答案可以找到

引用自,您只需在配置文件中使用这些设置

<system.web>
    <httpRuntime requestPathInvalidCharacters="" requestValidationMode="2.0" />
    <pages validateRequest="false" />
</system.web>


我是否应该在我的Web.config中已经有了它,因为我没有?这也是为了在需要指定%3F或的地方指定无效字符?是有效的,你知道反向操作吗?但它还是不喜欢,我厌倦了requestValidationMode“4.0”和建议的2.0。现在我得到的是404,而不是那个错误。仔细准备的表示uri的分隔符(url的“正确”术语)没有编码,只有数据编码。“?”是分隔符(将路径与参数分开),而不是数据,因此由规范对?因为%3F(在本例中)是错误的。