Сначала получите пример кода, работающего из вышеприведенного (EDIT - см. Ниже, на самом деле) Затем создайте новую ViewModel с любыми полями в ней, которые вы хотите отобразить.Создайте строго типизированное представление для этой ViewModel в виде списка ContactsViewModel
(как вы его называете), так что в верхней части вашего представления его: @model IEnumerable<ContactsViewModel>
Создайте маршрут для указания URL на ваш контроллерметод, затем в вашем методе просто запросите от Google, и заполните, используя цикл, LINQ, (или autopper, и т. д.) ваш ContactsViewModel
, и верните модель в представление.
Если у вас есть что-то более конкретноевдобавок ко всему, дайте мне знать, и я пойду глубже
По иронии судьбы есть несколько неправильно названных / отформатированных элементов в их одном и том же коде:) Конечно, добавьте ссылки ниже (контакты, клиент, расширения) из C: \ Program Files \ Google \ API данных Google SDK \ Redist папка
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Google.GData.Contacts;
using Google.GData.Client;
using Google.GData.Extensions;
using Google.Contacts;
namespace GoogleTests
{
class Program
{
static void Main(string[] args)
{
RequestSettings rs = new RequestSettings("myApplication", "youraccount@gmail.com", "yourpwd");
// AutoPaging results in automatic paging in order to retrieve all contacts
rs.AutoPaging = true;
ContactsRequest cr = new ContactsRequest(rs);
Feed<Contact> f = cr.GetContacts();
foreach (Contact entry in f.Entries)
{
if (entry.Name != null)
{
Name name = entry.Name;
if (!string.IsNullOrEmpty(name.FullName))
Console.WriteLine("\t\t" + name.FullName);
else
Console.WriteLine("\t\t (no full name found)");
if (!string.IsNullOrEmpty(name.NamePrefix))
Console.WriteLine("\t\t" + name.NamePrefix);
else
Console.WriteLine("\t\t (no name prefix found)");
if (!string.IsNullOrEmpty(name.GivenName))
{
string givenNameToDisplay = name.GivenName;
if (!string.IsNullOrEmpty(name.GivenNamePhonetics))
givenNameToDisplay += " (" + name.GivenNamePhonetics + ")";
Console.WriteLine("\t\t" + givenNameToDisplay);
}
else
Console.WriteLine("\t\t (no given name found)");
if (!string.IsNullOrEmpty(name.AdditonalName))
{
string additionalNameToDisplay = name.AdditonalName;
if (string.IsNullOrEmpty(name.AdditionalNamePhonetics))
additionalNameToDisplay += " (" + name.AdditionalNamePhonetics
+ ")";
Console.WriteLine("\t\t" + additionalNameToDisplay);
}
else
Console.WriteLine("\t\t (no additional name found)");
if (!string.IsNullOrEmpty(name.FamilyName))
{
string familyNameToDisplay = name.FamilyName;
if (!string.IsNullOrEmpty(name.FamilyNamePhonetics))
familyNameToDisplay += " (" + name.FamilyNamePhonetics + ")";
Console.WriteLine("\t\t" + familyNameToDisplay);
}
else
Console.WriteLine("\t\t (no family name found)");
if (!string.IsNullOrEmpty(name.NameSuffix))
Console.WriteLine("\t\t" + name.NameSuffix);
else
Console.WriteLine("\t\t (no name suffix found)");
}
else
Console.WriteLine("\t (no name found)");
foreach (EMail email in entry.Emails)
{
Console.WriteLine("\t" + email.Address);
}
}
}
}
}