C# 将%3F解码为'';在URL中使用UriBuilder
我正在构建一个url,并使用它指向我的一个控制器来做一些工作。当我传递包含%3F的url时,我遇到了这个错误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。我怎样才能破译这个?我需要的参数可见,以便服务台可以读取链接,如果他们需要。所以我不想对整个事情进行编码
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(在本例中)是错误的。