Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Umbraco获取JSON数据_C#_.net_Umbraco - Fatal编程技术网

C# 从Umbraco获取JSON数据

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

我是一名前端开发人员,请原谅我没有能力解释我的问题

我正在尝试在一个Umbraco项目中创建一些页面,使用Vue.js显示数据。为此,我尝试设置一个自定义API控制器,当调用它时,它将返回我想要的数据

一个简单的例子是,我想返回所有博客文章。以下是我目前获得的代码:

使用系统;
使用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对象

要解决您的问题,只需执行以下步骤:

  • 创建自己的DTO并在其中添加所需的属性
  • 从C#中的Umbraco API获取内容并填充自定义DTO对象
  • 从JsonResult返回该DTO
  • 您的代码如下所示:

    [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
    。我已经用最新的代码更新了问题。这是不可能的。在那里放一个断点&确保您编写的代码正在执行。