Model view controller ODataController和选项动词

Model view controller ODataController和选项动词,model-view-controller,odata,Model View Controller,Odata,我试图让我的WebAPI OData 4控制器处理选项动词 我的控制器中有以下代码: [AcceptVerbs("OPTIONS")] public IHttpActionResult Options() { return Ok(); } 但是,当我尝试使用jQuery进行POST时,OPTIONS请求仍然是404。似乎当前默认的OData路由约定不知道如何处理OPTIONS动词。您可以创建一个自定义IODataRoutingConvention来处理该动词 公共类选项路由约定:IOD

我试图让我的WebAPI OData 4控制器处理选项动词

我的控制器中有以下代码:

[AcceptVerbs("OPTIONS")]
public IHttpActionResult Options()
{
    return Ok();
}

但是,当我尝试使用jQuery进行POST时,OPTIONS请求仍然是404。

似乎当前默认的OData路由约定不知道如何处理OPTIONS动词。您可以创建一个自定义
IODataRoutingConvention
来处理该动词

公共类选项路由约定:IODataRoutingConvention
{
公共字符串SelectController(ODataPath ODataPath、HttpRequestMessage请求)
{
if(request.Method==HttpMethod.Options)
{
// ...
返回“ControllerName”;
}
返回null;
}
公共字符串SelectAction(ODataPath ODataPath、HttpControllerContext controllerContext、ILookup actionMap)
{
if(controllerContext.Request.Method==HttpMethod.Options)
{
// ...
返回“动作”;
}
返回null;
}
然后添加到您的配置中:

IEnumerable约定=
ODataRoutingConventions.CreateDefault().Concat(新[]{new options路由约定()});
config.MapODataServiceRoute(“odata”、“v2”、builder.GetEdmModel()、新的DefaultODataPathHandler()、约定);