C# 从Umbraco获取JSON数据
我是一名前端开发人员,请原谅我没有能力解释我的问题 我正在尝试在一个Umbraco项目中创建一些页面,使用Vue.js显示数据。为此,我尝试设置一个自定义API控制器,当调用它时,它将返回我想要的数据 一个简单的例子是,我想返回所有博客文章。以下是我目前获得的代码:C# 从Umbraco获取JSON数据,c#,.net,umbraco,C#,.net,Umbraco,我是一名前端开发人员,请原谅我没有能力解释我的问题 我正在尝试在一个Umbraco项目中创建一些页面,使用Vue.js显示数据。为此,我尝试设置一个自定义API控制器,当调用它时,它将返回我想要的数据 一个简单的例子是,我想返回所有博客文章。以下是我目前获得的代码: 使用系统; 使用System.Collections.Generic; 使用System.Linq; 使用系统文本; 使用System.Threading.Tasks; 使用Umbraco.Web; 使用System.Web.Ht
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
使用Umbraco.Web;
使用System.Web.Http;
使用Umbraco.Web.WebApi;
使用Umbraco.Web.PublishedContentModels;
使用Newtonsoft.Json;
命名空间控制器.WebAPI.Qwerty
{
[路由(“api/[控制器]”)]
公共类PostsApiController:UmbracoApicController
{
[HttpGet]
公共字符串测试()
{
返回“qwerty”;
}
}
}
问题在于,您不能在JSON中返回具有循环依赖关系的.NET对象
要解决您的问题,只需执行以下步骤:
[Route("api/[controller]")]
public class PostsApiController : UmbracoApiController
{
[HttpGet]
public MyDTO Test()
{
// 1. Get content from umbraco
var content = Umbraco.TypedContent(1122);
// 2. Create instance of your own DTO
var myDTO = new MyDTO();
// 3. Pupulate your DTO
myDTO.SomeProperty = content.SomeProperty;
// 4. return it
return myDTO;
}
}
你在正确的轨道上 我认为您需要返回ActionResult而不是string 比如:
[HttpGet]
public ActionResult Test()
{
var content = Umbraco.TypedContent(1122);
return new JsonResult(content);
}
这将以Json的形式返回umbraco对象 我得到的错误是:JsonResult不包含接受1个参数的构造函数,我尝试使用您建议的方法,但我的数据似乎只返回
1122
。我已经用最新的代码更新了问题。这是不可能的。在那里放一个断点&确保您编写的代码正在执行。