如何在WebApi控制器中的OData v4上设置路由前缀

时间:2019-02-12 08:18:46

标签: c# .net asp.net-web-api2 odata

我是OData的新手,我正在使用odata v4开发webapi,我需要将路由前缀添加到ODataController,例如“ api/V2/Products”,但它似乎不起作用

[ODataRoutePrefix("api/V2/Product")]
public class ProductsController : ODataController
{
    ODataTestContext db = new ODataTestContext();

    [EnableQuery]
    public IQueryable<Product> Get()
    {
        try
        {
            return db.Products;
        }
        catch (Exception ex)
        {

            throw new Exception(ex.Message);
        }

    }
}

// WebApiConfig。 //

公共静态无效寄存器(HttpConfiguration配置){

        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
        //OData config
        ODataModelBuilder builder = new ODataConventionModelBuilder();
        config.Count().Filter().OrderBy().Expand().Select().MaxTop(null);
        builder.EntitySet<Product>("Products");
        config.MapODataServiceRoute(
                                    routeName: "ODataRoute", 
                                    routePrefix: "odata", 
                                    model: builder.GetEdmModel()
                                   );

}

当我转到网址时: http://localhost:59886/odata/api/V2/Product

它给出HTTP错误500.0-内部服务器错误

请帮助并忍受我的英语

先谢谢

0 个答案:

没有答案