Asp.net mvc 如何使用Microsoft Graph列出所有联系人?

Asp.net mvc 如何使用Microsoft Graph列出所有联系人?,asp.net-mvc,microsoft-graph-api,outlook-restapi,Asp.net Mvc,Microsoft Graph Api,Outlook Restapi,我正在试验MicrosoftGraphAPI,并在MicrosoftDevelopers站点上使用QuickStarts建立了一个项目 我当前在尝试列出与登录帐户关联的所有电子邮件联系人时遇到问题 我的问题似乎在于如何请求信息并将其传递给ViewBag,因为即使有适当的前端列表,ViewBag也会抛出null引用异常 以下是相关代码: HomeController.cs 公共异步任务GetMyContacts { 尝试 { //Init GraphServiceClient GraphServi

我正在试验MicrosoftGraphAPI,并在MicrosoftDevelopers站点上使用QuickStarts建立了一个项目

我当前在尝试列出与登录帐户关联的所有电子邮件联系人时遇到问题

我的问题似乎在于如何请求信息并将其传递给ViewBag,因为即使有适当的前端列表,ViewBag也会抛出null引用异常

以下是相关代码:

HomeController.cs

公共异步任务GetMyContacts { 尝试 { //Init GraphServiceClient GraphServiceClient graphClient=SDKHelper.GetAuthenticatedClient; var contacts=await graphService.GetMyEmailContactsgraphClient; ViewBag.Contacts=联系人; 返回ViewGraph; } 捕获服务异常 { 如果se.Error.Message==Resource.Error\u authChallengeed返回新的EmptyResult; 返回RedirectToActionIndex,Error,new{message=Resource.Error_message+Request.RawUrl+:+se.Error.message}; } } GraphService.cs

公共异步任务GetMyEmailContactsGraphServiceClient图形客户端 { User me=wait graphClient.me.Request.Selectmail,userPrincipalName.GetAsync; var contacts=me.contacts; 返回联系人; } Graph.cshtml

@查看包。联系人 测试获取联系人 @Html.RawViewBag.Contacts


我在这里遗漏了什么?

在您看来,您必须将其转换回原始类型。ViewBag是C4动态类型。返回的实体也是动态的,除非强制转换

var contactList = ViewBag.Contacts as IEnumerable<Contact>;
如果要显示整个列表,其简单程度如下:

@foreach (var contact in contactList)
{
    <li>@contact</li>
}

你能为图形视图显示你的前端代码吗?@KrzysztofLa DoneI明白了,但我的问题似乎在于我是如何请求信息并将其传递给ViewBag的,因为它会抛出一个空引用异常,即使有正确的前端列表@KrzysztofLaYou应该提到,而不是你的问题。。。顺便说一句,如果您没有将任何模型传递给视图,并且视图仍然绑定到模型,那么您将得到一个null异常。确保将此模型从控制器传递到视图@模型你的模型