我尝试仅从sharepoint列表中获取指定的值,因此我的代码为:
public List<MenuPrincipal> GetMenuOptions(string idioma)
{
List<MenuPrincipal> result = new List<MenuPrincipal>();
try
{
SecureString pwd = SPAccess.GetPasswordFromConsoleInput(Definitions.UserPassword);
using (var context = new ClientContext(Definitions.WebUrl))
{
context.Credentials = new SharePointOnlineCredentials(Definitions.UserName, pwd);
List listResult = context.Web.Lists.GetByTitle("MenuPrincipal");
//CamlQuery query = CamlQuery.CreateAllItemsQuery(1000);
CamlQuery query = new CamlQuery();
query.ViewXml = string.Format("<View><Query><Where><Eq><FieldRef Name='Idioma'/><Value Type='Text'>{0}</Value></Eq></Where></Query><RowLimit>1000</RowLimit></View>", idioma);
ListItemCollection items = listResult.GetItems(query);
context.Load(items);
context.ExecuteQuery();
foreach (ListItem item in items)
{
result.Add(new MenuPrincipal
{
Titile = item["Title"] == null ? string.Empty : item["Title"].ToString(),
Enlace = item["Enlace"] == null ? string.Empty : item["Enlace"].ToString(),
Posicion = item["Posicion"] == null ? 0 : Convert.ToInt32(item["Posicion"]),
Idioma = item["Idioma"] == null ? string.Empty : item["Idioma"].ToString(),
Funcion = item["Funcion"] == null ? string.Empty : item["Funcion"].ToString()
});
}
}
}
catch (Exception)
{
throw;
}
return result.OrderBy(x => x.Posicion).ToList();
}
但是它有很多价值,我只需要在我的foreach中的值,所以我尝试做类似的事情:
context.Load(
items,
lists => lists.Include(
list => list.Titile.
list => list.Enlace,
list => list.Posicion,
list => list.Idioma,
list => list.Funcion));
而不是context.Load(items);
但我的所有列表都标有红色,如照片:http://10.0.18.66:50772/jars/SimpleJobApp-2016-08-05T17_44_07.353Z.jar
有人可以帮我解决如何在那里检索特定字段的问题吗?此致
答案 0 :(得分:0)
这是因为Title
,Enlace
以及您厌倦要包含的其他属性未在ListItem
上定义,您可以加载Id
或{{1}等属性但是要加载自定义字段,您必须指定与访问这些字段相同的方式 - 使用DisplayName
,如下面的代码段所示
[]