Umbraco MemberService GetAll方法并将数据返回到angular js调用

时间:2016-03-08 07:23:56

标签: angularjs umbraco

我正在尝试使用Memberservice获取所有成员,如下所示

 public  GetAllmembers()
{

    int totalRecords;
    var Members = ApplicationContext.Current.Services.MemberService.GetAll(0, int.MaxValue, out totalRecords);
    foreach (var member in Members)
    {
        //
    }
    return ;

}

什么是存储成员并返回角度js调用以在ng-table中显示它们的最佳方法?对此有何想法?

此致

1 个答案:

答案 0 :(得分:1)

您正在使用Umbraco,因此请使用UmbracoWebApi。

创建一个返回数据的控制器方法。在最简单的形式中,如果您想要返回所有成员,您可以这样做:

using System.Collections.Generic;
using System.Web.Http;
using Umbraco.Core.Models;
using Umbraco.Web.WebApi;

namespace NameOfYourUmbracoWebsiteProject.Controllers.ApiControllers
{
    public class MyMemberController : UmbracoApiController
    {
        [HttpGet]
        public IEnumerable<IMember> GetAllmembers()
        {
            var memberService = ApplicationContext.Services.MemberService;
            return memberService.GetAllMembers();
        }

    }
}

此方法的端点网址为:

http://www.mywebsite.com/umbraco/api/MyMember/GetAllMembers

创建上述方法,然后在浏览器中测试url(您将看到结果为xml而不是JSON)。

这将返回所有成员(如果从角度调用JSON) 这可能不是您想要的 因此您应该创建一个包含您实际需要的每个成员的属性,然后返回该集合。

例如:

public class MyCustomMember
{
    public string Name { get; set; }
    public string Email { get; set; }
}

然后更改控制器方法以返回MyCustomMember的集合。同样,如果从angular调用端点,web api应该将集合作为JSON

返回
[HttpGet]
public List<MyCustomMember> GetAllmembers()
{
    var memberService = ApplicationContext.Services.MemberService;

    var listMyCustomMember = new List<MyCustomMember>();

    foreach (var member in memberService.GetAllMembers())
    {
        var myCustomMember = new MyCustomMember
        {
            Name = member.Name,
            Email = member.Email
        };
        listMyCustomMember.Add(myCustomMember);
    }

    return listMyCustomMember;
}

有问题吗?