我正在尝试使用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中显示它们的最佳方法?对此有何想法?
此致
答案 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;
}
有问题吗?