asp.net-web-api – 在WebApi OData中为OData服务文档基URL提供一个尾部斜杠
|
如何在OData服务文档的根元素中控制基本URL属性? 我正在使用WebApi设置OData服务, 这一切都很美妙,Excel 2013愉快地访问数据. 尝试使用Excel 2010和PowerPivot时出现问题.我知道在没有Accept标头的情况下发送的JSON格式响应的fix,但我找不到任何有关基本URL问题的讨论. 我用config.Routes.MapODataRoute(“odata”,“odata”,builder.GetEdmModel())设置了我的odata路径;当我点击此URL时,我收到< service xml:base =“http:// localhost / odata”xmlns =“http://www.w3.org/2007/app”xmlns:atom =“http的响应://www.w3.org/2005/Atom“/> Excel 2010 PowerPivot读取此URL并确定由于基URI上没有尾部斜杠,因此它应该在根目录中请求具有URI的集合,例如,http:// localhost / Products而不是http:// localhost / odata / Products. 我通过访问服务文档的静态版本来确认我的怀疑,修改后将尾部斜杠添加到基本属性值,然后为集合资源请求正确的URL. 我已经尝试通过ASP.Net WebStack源代码来查看我是否可以覆盖格式化程序或其他东西,但是迷路了.任何建议将不胜感激. 解决方法我和PowerPivot有同样的问题,我设法修复了xml:base以与之兼容.这是所需代码的一部分:class MyODataPathHandler : DefaultODataPathHandler
{
public override string Link(ODataPath path)
{
if (path.PathTemplate == "~")
{
return path.ToString() + "/";
}
return base.Link(path);
}
}
和 config.Routes.MapODataRoute("odata","odata",builder.GetEdmModel(),new MyODataPathHandler(),ODataRoutingConventions.CreateDefault());
自定义ODataPathHandler将为默认路径添加额外的斜杠,这将导致xml:base解决PowerPivot中的错误.第二个问题是PowerPivot期望XML中的数据,而不是JSON中的数据.其中一个解决方法可以在http://aspnetwebstack.codeplex.com/workitem/820找到 (编辑:吉安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- .net – 可以为空的枚举类型的奇怪行为
- Asp.net(C#)读取数据库并生成JS文件制作首页图片切换效果(附
- 从app_data中删除文件夹时如何防止asp.net重新编译?
- asp.net-mvc – 使用MVC3剃刀的ASP.Net图表控件
- asp.net – 登录后对Membership.GetAllUsers()的例外情况:
- asp.net – Azure可以运行WPF吗?
- asp.net – 访问.NET中的Web服务中的查询字符串(GET请求数组
- asp.net-mvc-3 – 方法“OrderBy”必须在方法“跳过”异常之
- asp.net-mvc – 如何在视图上下文之外获取ModelMetadata?
- asp.net-mvc – 在.NET MVC上启用Http PUT请求
- 在ASP.NET中,什么决定了HostingEnvironment.IsDe
- MVC .Net Cascade在使用EF Code First Approach时
- asp.net-mvc – 找到相同类型的两个实体之间的差
- asp.net – 我可以重新发布或携带POST数据(如果是
- asp.net-mvc – 如何在ASP.NET MVC中传递页面的元
- asp.net-mvc – AntiXss保护Html模型属性
- asp.net-mvc – 在ASP.NET MVC中添加服务引用4
- asp.net – 从我的GridView行返回一个对象
- .net – asp:GridView文本框始终返回空值
- asp.net-mvc – ASP.NET MVC忽略所有url结尾的“
