我正在尝试创建一个支持odata的owin self host webapi。 当我调用get方法时(仅通过使用chrome冲浪),我添加了所有依赖项并设置了所有内容。 我放在GET上的断点被调用并返回而没有异常。 但chrome只返回一个空白屏幕,在chrome的控制台中找不到http错误。 当我在IE10中执行此操作时(旧版本,但我不允许更新)我得到406(不可接受)。
这是我的Startup.cs代码:
public void Configuration(IAppBuilder appBuilder)
{
// Configure Web API for self-host.
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
//config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
//config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/xml"));
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Product>("Products");
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: null,
model: builder.GetEdmModel());
appBuilder.UseWebApi(config);
}
这是我的控制器代码,只是一个简单的GET。
public class ProductsController : ODataController
{
ProductsContext db = new ProductsContext();
[EnableQuery]
public IQueryable<Product> Get()
{
try
{
return db.Products;
}
catch (System.Exception ex)
{
string x = "y";
return db.Products;
}
}
}
db.Products现在是一个空表,但这仍然应该返回一个空数组吗?
非常感谢任何帮助! 感谢。