0

我已经为此苦苦挣扎了一段时间,在互联网或论坛等上找不到任何有用的信息。

基本上,我被要求将 SharePoint 2010 文档库的内容输出到标准 MVC 网页上。

这是我的代码:

public class HomeController : Controller
{
  public ActionResult Index()
  {
    using (ClientContext site = new ClientContext("Http://MySPSite"))
    {
      List list = site.Web.Lists.GetByTitle("MyList");    
      site.Load(list);
      site.ExecuteQuery();
    }

    return View();
}
4

1 回答 1

1

我设法提取了我想使用以下内容的列表项

public ActionResult Index()
        {
            ViewData["Message"] = "Welcome to ASP.NET MVC!";
            List<string> documentTitles = new List<string>();
            using (ClientContext context = new ClientContext("http://siteurl"))
            {
                List list = context.Web.Lists.GetByTitle("doctest");
                context.Load(list);
                CamlQuery query = new CamlQuery();
                query.ViewXml = "<View/>";
                ListItemCollection listItems  = list.GetItems(query);
                context.Load(list);
                context.Load(listItems);
                //context.Load(listItems ,items => items.Include(
                //    item=>item["FileLeafRef"] 
                //    ));
                context.ExecuteQuery();
                foreach (ListItem item in listItems )
                {                    
                    documentTitles.Add(item["FileLeafRef"].ToString());
                }
            }
            return View(documentTitles);
        }

FileLeafRef 是“名称”列的内部名称。

我注释掉了 include FileLeafRef,因为它默认包含在内,但您可能需要它用于其他列。

由于您使用的是客户端库,因此这也需要在 .NET 3.5 中完成。

您将需要用您想要的数据填充一个对象并将其传递给视图(如果您不知道这一点,您应该查看一些 mvc 示例。从您的示例中,我无法判断您是否知道 mvc 或是否知道您只是发布代码来演示 SharePoint 问题)

您可能还必须设置上下文凭据

context.Credentials = new NetworkCredentials("Username", "Password", "Domain");

在调用执行之前。

于 2012-12-07T17:19:49.640 回答