我使用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属性,但仍然没有运气。任何帮助都将不胜感激。
谢谢