我在这里尝试了本文中描述的解决方案: 原始文章
如前所述,我做了:
var defaultConventions = ODataRoutingConventions.CreateDefault();
var conventions = defaultConventions.Except(
defaultConventions.OfType<MetadataRoutingConvention>());
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: null,
model: model,
pathHandler: new DefaultODataPathHandler(),
routingConventions: conventions);
一切正常,没有更多的元数据信息。标准请求工作正常,但未绑定的操作和功能不再工作,我收到 404 响应。
我将操作注册到 Odata 模型构建器,例如:
var validateEmailAction = builder.Action("ValidateEmail");
validateEmailAction.Parameter<string>("Email");
在控制器中我有:
[HttpPost]
[ODataRoute("ValidateEmail")]
public async Task<IHttpActionResult> ValidateEmail(ODataActionParameters parameters)
{
}
有什么建议我可以如何实现隐藏 Odatametada 但仍然有操作/功能工作?