Q: OData v4 Action conflict with MVC 404 not found When I upgraded to Odata v4, all actions that were working in v3 now gives 404 not found with error:
[HttpException]: The controller for path /odata/MyModel/CheckStatus was not found or does not implement IController.
at System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType)
at System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName)
at System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory)
at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

My code is as the following:
WebApiConfig:
config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
...
config.MapODataServiceRoute(
    routeName: "OData",
    routePrefix: "odata",
    model: GetModel(),
    batchHandler: new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer));

    config.AddODataQueryFilter();

GetModel:
builder.EntityType<MyModel>().Collection.
Action("CheckStatus").Parameter<IEnumerable<EntityStatus<MyModel>>>("modelStatus");
...

ODataController:
public async Task<IHttpActionResult> CheckStatus([FromBody] IEnumerable<EntityStatus<MyModel>> modelStatus)
...

where EntityStatus is a Generic Class as the following:
public class EntityStatus<T> where T : class
{
    [Key, Column(Order = 0)]
    public string Status { get; set; }

    [Key, Column(Order = 1)]
    public string Original { get; set; }

    public T Model { get; set; }
}

in Ajax call:
var url = "/odata/MyModel/CheckStatus";
$.ajax({
    url: url,
    ...

I have tried to add namespace, modify web.config and use OdataRoute without success. Could you please help me to bypass these errors showing above?

A: To get ride of all OData 4 actions "404 not found" errors is just replace the modules section in Web.config with the following:
<modules runAllManagedModulesForAllRequests="true"></modules>

I read somewhere that this is not a good solution. Fortunately, it is working now.
I would be happy if you share your experience about this solution with me.
