【发布时间】:2015-12-10 16:05:31
【问题描述】:
我已经使用邮递员测试了对 $metadata 的调用,发现当提供 MaxDataServiceVersion 标头时,服务总是返回 404 错误。我有其他关于使用 Breeze 的帖子,但我能找到的最佳答案只是说注释掉添加此标题的行。
我们在客户端应用程序中使用 SAPUI5 ODataModel 并注释掉该标头不是一个选项。
Web API 配置:
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<TBLMATERIAL>("TBLMATERIALs").EntityType.HasKey(o => o.MaterialNumber);
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: null,
model: builder.GetEdmModel());
客户代码:
var oModel = sap.ui.model.odata.v2.ODataModel("http://localhost:56720/");
oModel.attachMetadataFailed(null, function(a,b,c){
alert(a);
}, null);
oModel.attachMetadataLoaded(null, function(){
debugger;
var oMetadata = oModel.getServiceMetadata();
console.log(oMetadata);
},null);
【问题讨论】:
-
您是否尝试过在模型上使用 maxDataServiceVersion 选项?
-
“MaxDataServiceVersion”最大值是多少?客户端请求的版本是否与服务器提供的版本同步?伪:IF Client(MaxVersion) > Server(MaxVersion) => HTTP404
-
嗨。你找到解决办法了吗?
标签: .net odata asp.net-web-api2 sapui5