c# - WebAPI OData 无法处理参数中的点(即 '.' )?

标签 c# asp.net asp.net-web-api odata

我有一个基本的 WebAPI OData 应用程序,如果参数有一个“.”,它似乎拒绝将请求路由到我的 Controller 。

例如:

http://localhost.com/vroot/odata/foo ('abc') <== 正确路由

http://localhost.com/vroot/odata/foo ('a.bc') <== 返回 404 错误

即使替换“.”,我也会收到相同的 404 错误有一个 %2E。

http://localhost.com/vroot/odata/foo ('a%2Ebc') <== 返回 404 错误

这是 WebAPI OData 中普遍理解的问题吗?

关于可能发生的事情的任何想法(或者可能如何解决这个问题?)

最佳答案

IIS 对请求 url 中的点有不同的解释,因此请尝试在 web.config 中添加以下设置:

<modules>
  <remove name="UrlRoutingModule-4.0" />
  <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
</modules>

(从这里开始:http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html)

与您的问题相关的一些帖子:
Dots in URL causes 404 with ASP.NET mvc and IIS

关于c# - WebAPI OData 无法处理参数中的点(即 '.' )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23545320/

相关文章:

c# - 我可以将多个查询字符串值映射到单个 Controller (对象)参数吗?

c# - 如何检查 Razor 模板中的模型中的属性是否可用?

c# - 如何在 ApiController 中为单个方法返回 JSON?

c# - X文档 : saving XML to file without BOM

c# - 为什么 Office Interop 引用在 VS 2010 中显示错误

c# - 根据绑定(bind)值更改元素属性

c# - ASP.net Web App 撤消支持

c# - 如何获取我的wav文件相对于时间的声音幅度?

c# - 我们可以在 DotNet 类库项目中使用 global.asax 文件吗

javascript - 如何在打印文档后*重定向到另一个页面?