Umbraco MemberService GetAll 方法和 return 数据到 angular js 调用

Umbraco MemberService GetAll method and return the data to angular js call

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

 public  GetAllmembers()
{

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

}

将成员和 return 存储到 angular js 调用以在 ng-table 中显示它们的最佳方式是什么?对此有什么想法吗?

此致,

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

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

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();
        }

    }
}

此方法的端点 url 为:

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

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

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

例如:

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

然后将您的控制器方法更改为 return MyCustomMember 的集合。同样,如果从 angular 调用端点,web api 应该 return 集合作为 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;
}

有什么问题吗?