为什么Web API BreezeController返回XML格式的元数据?

时间:2015-09-04 17:41:14

标签: breeze asp.net-web-api

我使用Breeze服务器创建了一个web api控制器。我正在使用.NET 4.5和EF6(数据库优先)。以下是我从Nuget加载的相关软件包:

<package id="Breeze.Server.ContextProvider" version="1.5.4" targetFramework="net45" />
<package id="Breeze.Server.ContextProvider.EF6" version="1.5.4" targetFramework="net45" />
<package id="Breeze.Server.WebApi2" version="1.5.4" targetFramework="net45" />
<package id="EntityFramework" version="6.1.1" targetFramework="net45" />
<package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" />

我发现我的元数据是以XML格式的字符串而不是JSON的形式返回的。因此,我的客户端无法使用元数据响应。这是控制器代码的片段:

[BreezeController]
[EnableCorsAttribute("http://localhost:9000", "*", "*")]
public class CoreController : ApiController
{

    private readonly EFContextProvider<MyModel> _contextProvider = 
        new EFContextProvider<MyModel>();

    public CoreController(){ }

    [HttpGet]
    public string MetaData()
    {
        return _contextProvider.Metadata(); 
    }

当我使用Postman调用MetaData终点时,我得到以下内容:

"{\"?xml\":{\"version\":\"1.0\",\"encoding\":\"utf-8\"},\"schema\":{\"namespace\":\"MytModel\",...

我知道有一个类似的帖子here,但这似乎与微风客户有关。在我的例子中,启用breeze web api的控制器以这种方式返回数据。我也注意到有人发表了类似的评论here,但答案是[BreezeController]属性应该解决这个问题。我正在使用如上所述的BreezeController属性,但仍然没有运气。任何帮助都将不胜感激。

谢谢

0 个答案:

没有答案